taolib.testing.auth.tokens#
JWT 令牌服务。
提供 JWT 令牌的创建、解码和验证功能。
Classes#
JWT 令牌服务。 |
Module Contents#
- class taolib.testing.auth.tokens.JWTService(config: taolib.testing.auth.config.AuthConfig)#
JWT 令牌服务。
以
AuthConfig注入初始化,提供令牌创建和验证的完整功能。- 参数:
config -- 认证配置实例
- _config#
- property config: taolib.testing.auth.config.AuthConfig#
获取认证配置。
- create_access_token(user_id: str, roles: list[str], extra_claims: dict[str, Any] | None = None) str#
生成 Access Token。
- 参数:
user_id -- 用户 ID
roles -- 用户角色列表
extra_claims -- 额外的 JWT 声明
- 返回:
JWT Token 字符串
- create_refresh_token(user_id: str, extra_claims: dict[str, Any] | None = None) str#
生成 Refresh Token。
Refresh Token 不包含 roles,刷新时应重新从用户系统获取最新角色。
- 参数:
user_id -- 用户 ID
extra_claims -- 额外的 JWT 声明
- 返回:
JWT Token 字符串
- create_token_pair(user_id: str, roles: list[str]) taolib.testing.auth.models.TokenPair#
同时生成 Access Token 和 Refresh Token。
- 参数:
user_id -- 用户 ID
roles -- 用户角色列表
- 返回:
TokenPair 实例
- decode_token(token: str) taolib.testing.auth.models.TokenPayload#
解码任意类型的 JWT 令牌。
- 参数:
token -- JWT Token 字符串
- 返回:
TokenPayload 实例
- 抛出:
TokenExpiredError -- 如果令牌已过期
TokenInvalidError -- 如果令牌无效
- verify_access_token(token: str) taolib.testing.auth.models.TokenPayload#
验证 Access Token。
解码令牌并确认类型为
"access"。- 参数:
token -- JWT Token 字符串
- 返回:
TokenPayload 实例
- 抛出:
TokenExpiredError -- 如果令牌已过期
TokenInvalidError -- 如果令牌无效或类型不正确
- verify_refresh_token(token: str) taolib.testing.auth.models.TokenPayload#
验证 Refresh Token。
解码令牌并确认类型为
"refresh"。- 参数:
token -- JWT Token 字符串
- 返回:
TokenPayload 实例
- 抛出:
TokenExpiredError -- 如果令牌已过期
TokenInvalidError -- 如果令牌无效或类型不正确
- static _payload_from_dict(data: dict[str, Any]) taolib.testing.auth.models.TokenPayload#
从字典构建 TokenPayload。
兼容旧版令牌(可能缺少 jti/iat 字段)。
- 参数:
data -- JWT payload 字典
- 返回:
TokenPayload 实例