RefreshToken в JWT

225
15 сентября 2018, 16:20

По ответам из этого вопроса я понял как создавать jwt токен. Но теперь встал вопрос, как его неявно обновлять. Можно использовать refresh_token, но в обычном варианте он будет меняться при каждом логине пользователя. Т.е.:

  • Пользователь ввёл логин и пароль с одного устройства (например, браузер на ПК)
  • Получил токен и рефреш
  • Пользователь ввёл логин и пароль на другом устройстве (например, браузер на телефоне)
  • Пользователь получил новые токен и рефреш
  • Старые стали невалидны
  • Пользователю требуется логиниться заново на первом устройстве

Как итог у пользователя в принципе нет возможности быть авторизованным на двух устройствах одновременно.

В голову пришла мысль хранить в БД помимо самого рефреша и его срока годности ещё и какой-нибудь device_id, но что может быть этим device_id? User-Agent? Но он вроде не уникален.

Как лучше всего реализовать авторизацию на нескольких устройствах одновременно?

Вполне возможно я зря тут пытаюсь городить свой велосипед и у JWT есть готовое решение для этого, если так, то буду рад узнать о нём. (Мне, по крайней мере, гугл выдаёт лишь разного рода собственные реализации, причём без учёта нескольких девайсов)

READ ALSO
Контекст выполнения операции

Контекст выполнения операции

Есть класс Dispatcher с набором public методов, которые вызываются извнеКаждый из методов - задача(Func<Task>), запускаемая в очереди (в один момент...

211
Изменить данные XML файла

Изменить данные XML файла

Нужно из xml файла получать данные, по нажатию кнопки менять значение на 2 (+2)А вот как изменять данные из файла найти не могу нормально

243
PHP цикл выводит неправильную сумму

PHP цикл выводит неправильную сумму

Я создаю цикл от 0-100 и создаю определенные условияНапример, если число делится на 3 без остатка вывести строку, но у меня также есть условие,...

234
Telegram PHP получить ответ от бота

Telegram PHP получить ответ от бота

Подскажите, как мне лучше на php примерно будет реализовать задачуВ telegram есть бот (не мой), при написании ему сообщения он выдаёт ссылку

277