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,我們可以根據需求懸着相應的方法
