JWT 加密
JWT
- Json Web Token(JWT) 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准
- 常应用于服务端认证接口的无 session 方案
- 服务端生成一个标识,并使用某种算法对标识签名,并发送给客户端。
- 服务端收到客户端发来的标识,需要检查签名。
安装jwt
- 【报错信息】:ERROR: Could not find a version that satisfies the requirement pyjwt (from versions: none)
ERROR: No matching distribution found for pyjwt - 【解决方法】:pip无法安装解决方案
jwt.encode(参数,秘钥,加密方式)
import jwt
import datetime
#playload 载荷就是存放有效信息的地方
playload = {
# 创建一个过期时间
'exp': int((datetime.datetime.now() + datetime.timedelta(hours=4)).timestamp()),
'uid': user.id
}
encode_jwt = jwt.encode(playload, '秘钥', algorithm='HS256')
#加密后是二进制形式 要转码为str
encode_str = str(encode_jwt, 'utf-8')
一个完整的🌰
import datetime,jwt
def get_authorization(uid=10235922):
authorization = jwt.encode({"uid": uid, "exp": datetime.datetime.now() + datetime.timedelta(days=1), },
"lp$5F@nfN0Oh1234", algorithm="HS256")
return authorization