两步,第一步,生成token,第二部获取token并解析
生成token,我放在login视图中的
# 密钥是使用的settings文件中的密钥,你喜欢别的改就行了
key = settings.SECRET_KEY
token = jwt.encode({
# 里面的数据你想要啥就给啥,我这里只要id和名字还有一个判断时间的timestamp
'id': userinfo[0].id,
'username': userinfo[0].username,
# 当前时间戳加上设置里写好的时间
'timestamp': int(datetime.datetime.now().timestamp() + settings.AUTH_EXPIRE
)}, key, 'HS256').decode() # HS256是jwt加密算法,要换其他的自己去搜,我懒得搞
这是生成的token
解token,我放在中间件中的
# key还是那个key
result = jwt.decode(token, key, algorithms=['HS256'])
解出来就这样
这不是最安全的写法,但肯定是最简单的。
时间验证啥的这里就不写了,代码就这些,直接cv,要加啥自己加,没啥多说的,我tm看见某些博客不知道从那抄tm一堆,写的又乱还tm抄不全就烦,就恶心,哕~
其实还有个实现token的方式,是用 rest_framework_jwt 头,负载,签名都自己写的,要自定义好像要继承源类重写,我还没搞懂,后面搞懂了再写。