Django rest_framework_simplejwt 令牌过期太快
Django rest_framework_simplejwt token expiring too fast
对于 Django,我使用 rest_framework_simplejwt 应用程序设置了 JWT 身份验证。
我相信访问令牌的默认超时为 1 天,即使在 settings.py 中将其明确配置为 1 天后,令牌在约 10 分钟后不再工作,并且服务器 returns 401 响应。
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 天,它应该是有效的,所以我不确定是什么问题。
对可能出现的问题有什么想法吗?非常感谢您。
您确定提供的密钥名称正确吗settings.py
?
根据 django-rest-framework-simplejwt 的 repository,您需要使用 ACCESS_TOKEN_LIFETIME
而不是 TOKEN_LIFETIME
和 REFRESH_TOKEN_LIFETIME
而不是 TOKEN_REFRESH_LIFETIME
。
对于 Django,我使用 rest_framework_simplejwt 应用程序设置了 JWT 身份验证。
我相信访问令牌的默认超时为 1 天,即使在 settings.py 中将其明确配置为 1 天后,令牌在约 10 分钟后不再工作,并且服务器 returns 401 响应。
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 天,它应该是有效的,所以我不确定是什么问题。
对可能出现的问题有什么想法吗?非常感谢您。
您确定提供的密钥名称正确吗settings.py
?
根据 django-rest-framework-simplejwt 的 repository,您需要使用 ACCESS_TOKEN_LIFETIME
而不是 TOKEN_LIFETIME
和 REFRESH_TOKEN_LIFETIME
而不是 TOKEN_REFRESH_LIFETIME
。