JSON Web署名(JWS)—ItsDangerousドキュメント
提供:Dev Guides
Itsdangerous/docs/2.0.x/jws
JSON Web署名(JWS)
警告
バージョン2.0以降非推奨: ItsDangerousはバージョン2.1でJWSをサポートしなくなります。 authlib などの専用のJWS / JWTライブラリを使用します。
JSON Web Signatures(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
例外が発生します。