1

使用 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),
}

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

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

4

1 回答 1

4

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

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

于 2019-07-04T09:11:00.790 回答