JWT API¶
文档的这一部分涵盖了 joserfc.jwt
的所有接口。
- class joserfc.jwt.ClaimsOption¶
- class joserfc.jwt.JWTClaimsRegistry(now: int | None = None, leeway: int = 0, **kwargs: ClaimsOption)¶
- validate_aud(value: str | list[str]) None ¶
“aud”(受众)声明标识 JWT 预期的接收者。每个预期处理 JWT 的主体必须在受众声明中标识自己。如果处理声明的主体在存在此声明时未在“aud”声明中标识自己,则必须拒绝 JWT。一般情况下,“aud”值是包含 StringOrURI 值的区分大小写字符串数组。在 JWT 只有一个受众的特殊情况下,“aud”值可以是包含 StringOrURI 值的单个区分大小写字符串。受众值的解释通常是特定于应用程序的。使用此声明是可选的。
- validate_exp(value: int) None ¶
“exp”(到期时间)声明标识 JWT 必须在或之后的到期时间。处理“exp”声明要求当前日期/时间必须早于“exp”声明中列出的到期日期/时间。实现者可以提供一些小的余地,通常不超过几分钟,以考虑时钟偏差。其值必须是包含 NumericDate 值的数字。使用此声明是可选的。
- validate_iat(value: int) None ¶
“iat”(签发时间)声明标识 JWT 的签发时间。此声明可用于确定 JWT 的年龄。其值必须是包含 NumericDate 值的数字。使用此声明是可选的。
- validate_nbf(value: int) None ¶
“nbf”(不早于)声明标识 JWT 必须在之前的时间。处理“nbf”声明要求当前日期/时间必须晚于或等于“nbf”声明中列出的不早于日期/时间。实现者可以提供一些小的余地,通常不超过几分钟,以考虑时钟偏差。其值必须是包含 NumericDate 值的数字。使用此声明是可选的。
- class joserfc.jwt.Token(header: Dict[str, Any], claims: Dict[str, Any])¶
提取的 Token 对象,包含
header
和claims
。- 参数:
header -- JWT 的 header 部分
claims -- JWT 的有效载荷 (payload) 部分
- claims¶
字典形式的有效载荷 (payload) 声明 (claims)
- header¶
字典形式的 header
- joserfc.jwt.check_sensitive_data(claims: Dict[str, Any]) None ¶
检查声明是否包含敏感信息。
- joserfc.jwt.decode(value: bytes | str, key: str | bytes | OctKey | RSAKey | ECKey | OKPKey | KeySet | Callable[[GuestProtocol], str | bytes | OctKey | RSAKey | ECKey | OKPKey | KeySet], algorithms: list[str] | None = None, registry: JWSRegistry | JWERegistry | None = None) Token ¶
使用给定的密钥解码 JSON Web Token 字符串,并使用声明请求进行验证。
- 参数:
value -- JWT 的文本
key -- 用于验证签名的密钥
algorithms -- 允许的算法列表
registry -- 要使用的
JWSRegistry
或JWERegistry
- 触发:
BadSignatureError
- joserfc.jwt.encode(header: Dict[str, Any], claims: Dict[str, Any], key: str | bytes | OctKey | RSAKey | ECKey | OKPKey | KeySet | Callable[[GuestProtocol], str | bytes | OctKey | RSAKey | ECKey | OKPKey | KeySet], algorithms: list[str] | None = None, registry: JWSRegistry | JWERegistry | None = None) str ¶
使用给定的 header 和声明 (claims) 编码 JSON Web Token。
- 参数:
header -- 字典形式的 JWT header 部分
claims -- 用来编码的字典形式的 JWT claims 部分
key -- 用于签名的密钥
algorithms -- 允许的算法列表
registry -- 要使用的
JWSRegistry
或JWERegistry