Как использовать токены обновления в аутентификации jwt - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть несколько вопросов о реализации токенов обновления.Я много искал, но ничего не нашел:

  1. Нужно ли использовать jwt для обновления токена, или это может быть хэшированная строка?Каковы преимущества использования jwt в токенах обновления?

  2. Должен ли токен обновления иметь срок действия?Я хочу использовать функцию «Обновить токены» для функции remember me, поэтому, если пользователь через месяц вернется на веб-сайт или в мобильное приложение, он сможет продолжить работу в качестве зарегистрированного пользователя.

  3. Должен ли я отправлять жетон обновления клиенту?(Поскольку мы храним его в базе данных и удаляем его при выходе из системы)

Ответы [ 2 ]

1 голос
/ 14 апреля 2019
  1. Обновить токен должен использоваться клиентом для получения нового токена доступа с сервера.Таким образом, формат токена обновления полностью зависит от сервера авторизации, который выдает токен.Если вы выпускаете «Токен доступа» и «Токен обновления», тогда проще иметь один и тот же формат, то есть формат JWT.
  2. Жетоны обновления должны иметь время истечения.Это может быть намного дольше, чем срок действия токена обычного доступа.Это всегда можно сделать настраиваемым ресурсом.
  3. Вы должны отправить токен обновления клиенту, чтобы клиент мог использовать его для запроса нового токена.
1 голос
/ 09 апреля 2019

Я использую токен JWT для обновления. Он имеет разные претензии в качестве токена доступа. Кроме того, я храню некоторые претензии refreshKey, которые также хранятся в базе данных. Этот подход позволяет мне на всякий случай отозвать этот токен (например, функциональность блокировки пользователя).

  1. Преимущества: у вас тот же механизм проверки, что и для маркера доступа (проверка действительности, срок действия и т. Д.).
  2. Обычно токены обновления имеют очень большой срок действия (намного дольше, чем токен доступа). Использование маркеров с длинным доступом не рекомендуется, так как вы не можете их отозвать. Хорошо иметь длительный токен обновления, если вы можете отозвать его.
  3. Да, вы должны отправить его клиенту, чтобы сохранить архитектуру без сохранения состояния (я полагаю, это ваша цель использования JWT)
...