我已经集成了JWT令牌和django-restframwork,在这里我设置了过期时间15mints JWT_EXPIRATION_DELTA
,但它在提到的时间(1mints)之前就要过期了,我需要刷新令牌才能继续...PFB me配置
Python 3.5
Django==2.0.5
djangorestframework==3.8.2
djangorestframework-simplejwt==3.2.3
Setting.py
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
],
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
)
}
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=900),
'JWT_ALLOW_REFRESH': True,
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
}
请帮帮忙,我是不是做错了什么?
发布于 2018-06-10 03:20:45
您正在使用djangorestframework-simplejwt
,但您的配置是针对djangorestframework-jwt
的。请卸载djangorestframework-simplejwt
并安装djangorestframework-jwt
。
pip uninstall djangorestframework-simplejwt
然后
pip install djangorestframework-jwt
更多详细信息here
发布于 2018-10-05 17:12:01
您仍然可以使用djangorestframework-simplejwt,并在设置文件中修改时间
settings.py
from datetime import timedelta
...
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
'ROTATE_REFRESH_TOKENS': False,
'BLACKLIST_AFTER_ROTATION': True,
'ALGORITHM': 'HS256',
'SIGNING_KEY': settings.SECRET_KEY,
'VERIFYING_KEY': None,
'AUTH_HEADER_TYPES': ('Bearer',),
'USER_ID_FIELD': 'id',
'USER_ID_CLAIM': 'user_id',
'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
'TOKEN_TYPE_CLAIM': 'token_type',
'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),
'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),
}
查看https://github.com/davesque/django-rest-framework-simplejwt
https://stackoverflow.com/questions/50777598
复制相似问题