устройства, то есть если зашел с телефона, то создался 1 рефреш токен, зашëл с компьютера — это уже другой рефреш токен. Как вы определите с какого устройства был отправлен запрос на регистрацию/логин, через user agent?
Если через веб браузер, то User Agent
скорее юзер агент
А если клиентское приложение, то дополнительно передавать id приложения (версия для винды, линукса, адроид и прочее)
а если будет вход ещë и с телефона
представим ситуацию, есть 2 пк, одна и та же ос, один и тот же браузер, только на пк номер 1 я залогинен в приложение, а на 2 нет, я решаю залогиниться с 2-гг пк, в итоге получается так что на 2 пк я вхожу в аккаунт, а на 1-ом пк автоматический выход, так как user agent будет одинаковым. Что в такой ситуации делать?
Вот примеры юзер агентов https://web-data-extractor.net/faq/spisok-aktualnyx-user-agent/ android, iphone указываются там
Я не совсем хорошо знаком с этим, но я думаю это можно обойти, если токен хранить в куках, а не на сервере с ключом по user agent, если я правильно понял
Зачем такое нужно ?
так я же объяснил, смотря что нужно
рефреш токен не на сервере?)
Нет, в браузере
смысл хранить его в браузере, если его на сервере не будет, точнее в базе данных
Его наверное стоит хранить на обоих сторонах и отвязать его хранение от UserAgent
так всегда и делают, только вот как понять какой токен от какого устройства, если не через user agent
Тогда лучше просто не делать UserAgent ключевым полем, чтобы несколько одинаковых UserAgent'ов было доступно для одного пользователя
можно, пожалуйста, поконкретнее, я возможно просто не всë понимаю
Я вот тоже не совсем понял, почему у 1 пользователя не могут быть одинаковые ЮзерАгенты, подумал, что у тебя сделаны они уникальными
смотри, есть 2 пк с одинаковой ос и одинаковым браузером, на 1 пк я залогинился, в бд создался рефреш токер номер 1, на клиент оправился access и refresh токены, затем я решаю залогиниться со 2 пк, логинюсь и что происходит: 1. Сервер в бд пытается найти нужный токен совпадающий с user agent и находит 2. Удаляет его и создает новый, то есть рефреш токен номер 2 3. Отправляет аццесс и рефреш на клиент Значит теперь рефреш токен номер 1 невалидный, что значит то что с первого аккаунта через какое то время произойдет автовыход
Ну вот теперь сам клиент может хранить рефреш токен и передавать его серверу. Если хочешь, чтобы на 2 одинаковых ПК авторизация работала без конфликтов, то можно отказаться от проверки на ЮзерАгент
В принципе вариант, да. При логине давать на клиент токен что б он его хранил
ну так и делается же,по итогу и в бд токен и у клиента
Только в твоём варианте при логине прошлый удаляется и выдаётся новый
Обсуждают сегодня