Задать вопрос
@Mishcake

Как зашифровать АПИ токен на стороне клиента?

Привет! В предыдущем вопросе спросил, можно ли непосредственно со страницы с формой отправлять АПИ-запросы и проверять какие-то условия.

Оказалось, что можно, но в запросе нужно обязательно передавать токен партнёра, без которого не будет ответа. Но с этим токеном можно сделать кучу всего в сервисе, с которым я связываюсь по АПИ и вставлять этот токен прям в код страницы мне как-то боязно.

Обращаюсь к АПИ посредством js и fetch.

P.S. Как альтернативу вижу хранить значение токена на внешнем хосте в php-скрипте, который будет проверять, с какого адреса будет приходить запрос и если он соответствует моему, то после отправит его в АПИ, потом вернёт обратно на страницу, где JS на основе ответа сделает что-то.

Или юзать base64_encode() и base64_decode() на сервере с php.

Как лучше поступить, подскажите, пожалуйста.
  • Вопрос задан
  • 804 просмотра
Подписаться 1 Средний Комментировать
Решение пользователя Ninazu К ответам на вопрос (4)
Ninazu
@Ninazu
Ничего шифровать не нужно. Алгоритм такой
1. Берете https://github.com/Valve/fingerprintjs2
2. Отправляете результат его работы c каждым запросом
3. Авторизируетесь и получаете токен который на сервере привязан к fingerprint и IP
4. При получении запроса с токеном и fingerprint, проверяете наличие токена в своем хранилище, и соответсвие токена IP и fingerprint которые пришли с клиента
5. Если не прошла проверка, заставляйте авторизироваться снова.

P.S. IP часто динамический. Так что учитывайте это. Например много людей используют мобильный интернет. Плюс нужно понимать что может быть несколько устройств. Пользователь может зайти с планшета, телефона и ПК
Ответ написан