Django Rest Framework JWT Refre sh Токен одноразового использования - PullRequest
0 голосов
/ 06 марта 2020

Я использую jwt для аутентификации и хочу разрешить токены refre sh, но кажется, что токены refre sh остаются в силе неограниченное время. Существует ли реализация, ограничивающая количество использования токена refre sh? Я знаю, что поле JWT_REFRESH_EXPIRATION_DELTA может определять срок действия токена, но это не решает эту текущую проблему.

from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token, verify_jwt_token


urlpatterns = [
    url(r"^jwt/create/?", obtain_jwt_token, name="jwt-create"),
    url(r"^jwt/refresh/?", refresh_jwt_token, name="jwt-refresh"),
    url(r"^jwt/verify/?", verify_jwt_token, name="jwt-verify"),
]

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Я бы предложил использовать django -rest-framework-simplejwt . Это также официальный плагин JWT, предложенный DRF.

Если вы настроите его правильно, следуя его документации, то токен refre sh может использоваться только один раз по умолчанию.

0 голосов
/ 06 марта 2020

Просто настройте приведенные ниже операторы в settings.py файле.

JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(hours=1),
    'JWT_ALLOW_REFRESH': True,
    'JWT_RESPONSE_PAYLOAD_HANDLER': 'users.views.custom_jwt.jwt_response_payload_handler',  // This is the file represents token add external values.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...