JSON Web署名(JWS)—ItsDangerousドキュメント

提供:Dev Guides
Itsdangerous/docs/1.1.x/jws
移動先:案内検索

JSON Web署名(JWS)

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例外が発生します。