JSON Web 签名 (JWS) — 这是危险的文档

来自菜鸟教程
Itsdangerous/docs/1.0.x/jws
跳转至:导航、​搜索

JSON 网络签名 (JWS)

JSON Web 签名 (JWS) 的工作方式与现有的 URL 安全序列化程序类似,但会根据 draft-ietf-jose-json-web -signature 发出标头。

from itsdangerous import JSONWebSignatureSerializer
s = JSONWebSignatureSerializer("secret-key")
s.dumps({"x": 42})
'eyJhbGciOiJIUzI1NiJ9.eyJ4Ijo0Mn0.ZdTn1YyGz9Yx5B5wNpWRL221G1WpVE5fPCPKNuc6UAo'

加载值时,默认情况下不会像其他序列化程序一样返回标头。 但是,也可以通过传递 return_header=True 来请求标头。 可以在序列化时提供自定义标头字段:

s.dumps(0, header_fields={"v": 1})
'eyJhbGciOiJIUzI1NiIsInYiOjF9.MA.wT-RZI9YU06R919VBdAfTLn82_iIQD70J_j-3F4z_aM'
s.loads(
    "eyJhbGciOiJIUzI1NiIsInYiOjF9"
    ".MA.wT-RZI9YU06R919VBdAfTLn82_iIQD70J_j-3F4z_aM"
)
(0, {'alg': 'HS256', 'v': 1})

itsdangerous 目前只提供 HMAC SHA 衍生算法和 none 算法,不支持基于 ECC 的算法。 标头中的算法根据序列化程序之一进行检查,如果不匹配,则会引发 BadSignature 异常。