JWS是一种用于签名任意JSON的标准,常用于各种基于Web的技术。
以下根据两个函数介绍如何生成jws
from itsdangerous import BadSignature, SignatureExpired
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer # 扩展了JSONWebSignatureSerializer,增加了签名过期时间
secret_key = '0w6swswex3+oe-vu@c&z*8d837&fdd2ddoff55bf23'
def gen_token():
s = Serializer(secret_key, expires_in=3600) # 设置过期时间1小时
data = {"username": "hhyy", "age": 20}
token = s.dumps(data).decode('utf8')
print(token) # eyJhbGciOiJIUzUxMiIsImlhdCI6MTU5ODY4OTIyNSwiZXhwIjoxNTk4NjkyODI1fQ.eyJ1c2VybmFtZSI6ImhoeXkiLCJhZ2UiOjIwfQ.vY_6XTsABNfpeyUiIMOMr5GeVGQPlxlmFWfiu2NJUMNe55wsoCaJCUWHSysedwArK8-UFAqyZHn1Pkd9eoSpZw
return token
def vali_token():
token = gen_token()
s = Serializer(secret_key)
try:
result = s.loads(token) # 提取负载中的数据
print(result) # {'username': 'hhyy', 'age': 20}
except (SignatureExpired, BadSignature):
return False
如果你尝试伪造或者篡改数据会触发SignatureExpired, BadSignature的错误。
评论列表
已有0条评论