2016-09-11 4 views
1

Я читал много о токенах JSON в последнее время. Большая вещь, которую я вижу, заключается в том, что для того, чтобы иметь тайм-аут на основе последнего доступа, а не жесткий тайм-аут, вам нужно использовать отдельный токен обновления. Я ничего не вижу, потому что ПОЧЕМУ.JWT: зачем мне токен обновления?

Зачем нужен отдельный токен? Почему бы просто не обновить последнее значение доступа в исходном токене каждый раз, когда он был получен? Начальное время доступа все равно может быть сохранено, и более продолжительный жесткий тайм-аут устанавливается независимо.

Может кто-нибудь объяснить, почему токен обновления предпочтительнее? Благодарю.

+0

Возможный дубликат [Почему OAuth v2 имеет доступ и обновление токенов?] (Http://stackoverflow.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh- жетоны) –

ответ

1

Существует так много вариантов того, как реализовать JWT, и большинство из них сводится к вашим требованиям и тому, как вы хотите, чтобы приложение работало.

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

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

Смежные вопросы