JOSE RFC¶
joserfc
是一个提供了多个重要 JSON Object Signing and Encryption (JOSE) 标准的全面实现的 Python 库,包括 JWS (JSON Web Signature),JWE (JSON Web Encryption),JWK (JSON Web Key),JWA (JSON Web Algorithms),和 JWT (JSON Web Tokens)。
它源于 Authlib,但我们专门为 JOSE 功能重新设计了 API。
使用方法¶
一个快速而简单的 JWT 编码和解码的示例如下:
>>> from joserfc import jwt
>>> from joserfc.jwk import OctKey
>>> key = OctKey.import_key("secret")
>>> encoded = jwt.encode({"alg": "HS256"}, {"k": "value"}, key)
>>> encoded
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrIjoidmFsdWUifQ.ni-MJXnZHpFB_8L9P9yllj3RNDfzmD4yBKAyefSctMY'
>>> token = jwt.decode(encoded, key)
>>> token.header
{'alg': 'HS256', 'typ': 'JWT'}
>>> token.claims
{'k': 'value'}
您可以在 JSON Web Token 部分找到更多详细信息和高级用法。
重要
The string "secret"
employed in the above example is solely intended for demonstration
purposes. In a production environment, it is crucial to use a highly secure secret key to
ensure robust security measures.
RFCs¶
它遵循可扩展的 API,并遵循 RFC 标准。该模块包含以下实现:
RFC7515: JSON Web Signature
RFC7516: JSON Web Encryption
RFC7517: JSON Web Key
RFC7518: JSON Web Algorithms
RFC7519: JSON Web Token
RFC7520: Examples of Protecting Content Using JSON Object Signing and Encryption
RFC7638:
thumbprint
for JWKRFC8037: OKPKey and
EdDSA
algorithmRFC8812:
ES256K
algorithm
同时包含如下 JOSE 草案的实现:
提示
RFC7520 是测试案例,详情请参考源码里的 tests 部分。
继续阅读¶
浏览以下部分,了解更多关于 joserfc
及其特性的内容。