Токены JWT в Django Rest Framework

Я создаю Django Rest Framework API, который использует аутентификацию JWT. Я создал токены доступа и токены обновления и отправил их пользователям.

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

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

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

Но в случае моей реализации JWT в DRF этого не произойдет. Я не храню токен в базе данных.

Так что я хочу знать, является ли это какой-либо специфической проблемой реализации или это свойство только JWT, и если это свойство, то пожалуйста, поделитесь со мной некоторыми подробностями об этом.

Спасибо.

Согласно введению ЖВТ:

JSON Web Token (JWT) - это открытый стандарт (RFC 7519), определяющий компактный и самодостаточный способ безопасной передачи информации между сторонами в виде объекта JSON. Эта информация может быть проверена и доверена, поскольку она подписана цифровой подписью. JWT могут быть подписаны с использованием секрета (с алгоритмом HMAC) или пары открытый/закрытый ключ с использованием RSA или ECDSA.

.

Одним из значений, которое вы можете закодировать, является 'exp', обозначающее дату истечения срока действия. Вот почему срок действия ваших старых токенов не истекает, потому что срок их действия все еще действителен, а все остальные требования не изменились. Идея токена 'refresh' заключается в том, чтобы обеспечить новые токены большим значением exp. Говоря иначе, вы не должны ожидать, что авторизация теперь не пройдет, так как старый токен все еще правильный.

Также вы ничего не храните в базе данных (об этом я также предлагаю прочитать ответ, предоставленный @sdoxsee

).
Вернуться на верх