1.使用rest_framework_jwt
from rest_framework_jwt.settings import api_settings jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER payload = jwt_payload_handler("存儲的信息") token = jwt_encode_handler(payload)
這種方式相比較另外一種方式比較簡單,但這種方式生成的token無法根據我們的需求設置過期時間,界限來的一種方法可以為token設置過期時間。
2.使用TimedJSONWebSignatureSerializer
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer from django.conf import settings # serializer = Serializer(秘鑰, 有效期秒) serializer = Serializer(settings.SECRET_KEY, 300) # serializer.dumps(數據), 返回bytes類型 token = serializer.dumps({'mobile': '18512345678'}) token = token.decode() # 檢驗token # 驗證失敗,會拋出itsdangerous.BadData異常 serializer = Serializer(settings.SECRET_KEY, 300) try: data = serializer.loads(token) except BadData: return None
這種方式可以生成一個具有時效的token,我們可以根據需求懸着相應的方法