书写前言
jwt的token过期时间是在settings.py中设置的,可是却不是django项目的settings.py中设置的,django项目的settings.py不会覆盖jwt的settings,因此我们需要在jwt模块中的settings.py更改过期时间
本地
找到settings.py
L:\djangoProject\publicvenv\venv\Lib\sitepackages\rest_framework_simplejwt\settings.py
这个是我本地的路径,实际上只需要这一段就够了
\venv\Lib\sitepackages\rest_framework_simplejwt\settings.py
更改配置
DEFAULTS = { "ACCESS_TOKEN_LIFETIME": timedelta(minutes=60), "REFRESH_TOKEN_LIFETIME": timedelta(days=30), "ROTATE_REFRESH_TOKENS": False, "BLACKLIST_AFTER_ROTATION": False, "UPDATE_LAST_LOGIN": False, "ALGORITHM": "HS256", "SIGNING_KEY": settings.SECRET_KEY, "VERIFYING_KEY": "", "AUDIENCE": None, "ISSUER": None, "JSON_ENCODER": None, "JWK_URL": None, "LEEWAY": 0, "AUTH_HEADER_TYPES": ("Bearer",), "AUTH_HEADER_NAME": "HTTP_AUTHORIZATION", "USER_ID_FIELD": "id", "USER_ID_CLAIM": "user_id", "USER_AUTHENTICATION_RULE": "rest_framework_simplejwt.authentication.default_user_authentication_rule", "AUTH_TOKEN_CLASSES": ("rest_framework_simplejwt.tokens.AccessToken",), "TOKEN_TYPE_CLAIM": "token_type", "JTI_CLAIM": "jti", "TOKEN_USER_CLASS": "rest_framework_simplejwt.models.TokenUser", "SLIDING_TOKEN_REFRESH_EXP_CLAIM": "refresh_exp", "SLIDING_TOKEN_LIFETIME": timedelta(minutes=5), "SLIDING_TOKEN_REFRESH_LIFETIME": timedelta(days=1), "TOKEN_OBTAIN_SERIALIZER": "rest_framework_simplejwt.serializers.TokenObtainPairSerializer", "TOKEN_REFRESH_SERIALIZER": "rest_framework_simplejwt.serializers.TokenRefreshSerializer", "TOKEN_VERIFY_SERIALIZER": "rest_framework_simplejwt.serializers.TokenVerifySerializer", "TOKEN_BLACKLIST_SERIALIZER": "rest_framework_simplejwt.serializers.TokenBlacklistSerializer", "SLIDING_TOKEN_OBTAIN_SERIALIZER": "rest_framework_simplejwt.serializers.TokenObtainSlidingSerializer", "SLIDING_TOKEN_REFRESH_SERIALIZER": "rest_framework_simplejwt.serializers.TokenRefreshSlidingSerializer", }
详细配置情况可以看这个官方文档Settings — Simple JWT 5.2.2.post30+gfaf92e8 documentation (django-rest-framework-simplejwt.readthedocs.io)
服务器
找到settings.py
我是在宝塔面板里面部署的项目,那么关键的问题就是,我去哪里才能找到,宝塔项目把requirements里面的包下载到了哪里?
利用Python项目管理器创建项目的时候会自动在项目根目录生成一个venv文件夹(前面有一堆字符的这个),Python的包都下载到了这里
bd83ca6cc23aeab97630bfebbc8d5a84_venv/lib/python3.9/site-packages
按照这个路径来,你要找的的包都在这里
在这里面找到rest_framework_simplejwt\settings.py
就好了
更改配置
同上
原文链接:django_rest_framework_simplejwt如何更改token的默认过期时间 | DaoXuan