PYJWT
使用HS256编码和解码令牌
import jwt
import datetime
dic = {
# 当前时间加上180秒,意味着token过期时间为3分钟以后
'exp': datetime.datetime.now() + datetime.timedelta(seconds=180), # JWT的过期时间
'iat': datetime.datetime.now(), # JWT的签发时间
'iss': 'lianzong', # 签名
"aud": ["urn:foo", "urn:bar"], # JWT 所针对的收件人
'data': { # 内容,一般存放该用户id和开始时间
'id': 1, #用户ID
'login_time': 2, #登录时间
},
}
s = jwt.encode(dic, 'secret', algorithm='HS256') # 加密生成字符串
print(s)
a = jwt.decode(s, options={"verify_signature": False}) #在不进行验证的情况下读取声明集
print(a)
b = jwt.get_unverified_header(s) #读取header而不进行验证
print(b)
s = jwt.decode(s, 'secret', issuer='lianzong', audience="urn:foo",algorithms=['HS256']) # 解密,校验签名 多个值访问audience=["urn:foo", "urn:bar"]
print(s)