django 使用jwt模块无脑生成token还有自定义密钥加盐,直接cv有手就会

373 阅读1分钟

两步,第一步,生成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

image.png

解token,我放在中间件中的

# key还是那个key
result = jwt.decode(token, key, algorithms=['HS256'])

解出来就这样

image.png

这不是最安全的写法,但肯定是最简单的。

时间验证啥的这里就不写了,代码就这些,直接cv,要加啥自己加,没啥多说的,我tm看见某些博客不知道从那抄tm一堆,写的又乱还tm抄不全就烦,就恶心,哕~

其实还有个实现token的方式,是用 rest_framework_jwt 头,负载,签名都自己写的,要自定义好像要继承源类重写,我还没搞懂,后面搞懂了再写。