Django Rest_framework_simplejwt 令牌过期太快

sim*_*nes 2 python django jwt django-rest-framework django-rest-framework-simplejwt

在 Django 中,我使用rest_framework_simplejwt 应用程序设置了 JWT 身份验证。

我相信访问令牌的默认超时为 1 天,即使在 settings.py 中明确将其配置为 1 天后,令牌在大约 10 分钟后就不再起作用,并且服务器返回 401 响应。

设置.py:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    ),
}

SIMPLE_JWT = {
    'TOKEN_LIFETIME': timedelta(days=1),
    'TOKEN_REFRESH_LIFETIME': timedelta(days=7),
}
Run Code Online (Sandbox Code Playgroud)

我认为Django中的时间设置可能有问题,因此在settings.py中我放置了datetime.datetime.now()的打印,奇怪的是在startapp期间调用了两次,时差为2小时。不过,如果令牌生命周期应该是 1 天,它应该是有效的,所以我不确定问题是什么。

关于问题可能是什么的任何想法吗?预先非常感谢您。

cag*_*ias 6

您确定提供了正确的键名settings.py吗?

根据 django-rest-framework-simplejwt 的存储库,您需要使用ACCESS_TOKEN_LIFETIME代替TOKEN_LIFETIMEREFRESH_TOKEN_LIFETIME代替 TOKEN_REFRESH_LIFETIME