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,我们可以根据需求悬着相应的方法