Django rest_framework_simplejwt令牌过期太快

时间:2019-07-04 08:51:53

标签: python django django-rest-framework jwt django-rest-framework-simplejwt

使用Django,我已经使用rest_framework_simplejwt应用设置了JWT的身份验证。

我相信访问令牌的默认超时为1天,即使在settings.py中将其显式配置为1天之后,令牌也无法正常工作,大约10分钟后服务器将返回401响应。 / p>

settings.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),
}

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

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

1 个答案:

答案 0 :(得分:0)

确定要提供正确的键名settings.py

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