DJANGO-GRAPHQL-JWT: Как мы узнаем, сколько лет токену обновления после его выпуска?

обзор

Основано на концепции, найденной в разделе " Настройки " долгосрочного токена обновления.

Это означает, что вам необходимо обновлять [токен доступа] каждые 5 минут, и вам необходимо заменить свой токен обновления через 7 дней после его выдачи.

Это позволит пользователю поддерживать сеанс обновления токена, если мы можем обновить его в течение 7 дней (например, 'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=7)).

Обратите внимание, что вы не можете позвонить refreshToken(refreshToken: $refreshToken) с маркером обновления с истекшим сроком действия, так как это может привести к "message": "Refresh token is expired",

проблема

Теперь борьба заключается в том, как мы узнаем, что токен обновления истекает через 7 дней? Таким образом, мы можем создать логику, чтобы проверить, осталось ли у нее 1 день для сеанса, а затем вызвать refreshToken() мутация?

Заключение

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

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

1 ответ

Токен JWT на самом деле представляет собой строку в кодировке Base64, в которой хранится множество собственных свойств, включая искомое. Прелесть токена JWT в том, что он также содержит хеш, который основан на полезных частях токена. Это означает, что если кто-то изменит токен JWT, изменив дату истечения срока действия / выпуска, имя пользователя или пользовательское значение, хеш больше не будет действительным и токен будет отклонен.

В вашем случае это означает, что вы можете принять токен, декодировать строку в объект JSON, проверить его значение и основать свой ответ на его содержимом. Надеюсь это поможет!

Другие вопросы по тегам