taolib.testing.auth.tokens#

JWT 令牌服务。

提供 JWT 令牌的创建、解码和验证功能。

Classes#

JWTService

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 实例

抛出:
verify_access_token(token: str) taolib.testing.auth.models.TokenPayload#

验证 Access Token。

解码令牌并确认类型为 "access"

参数:

token -- JWT Token 字符串

返回:

TokenPayload 实例

抛出:
verify_refresh_token(token: str) taolib.testing.auth.models.TokenPayload#

验证 Refresh Token。

解码令牌并确认类型为 "refresh"

参数:

token -- JWT Token 字符串

返回:

TokenPayload 实例

抛出:
static _payload_from_dict(data: dict[str, Any]) taolib.testing.auth.models.TokenPayload#

从字典构建 TokenPayload。

兼容旧版令牌(可能缺少 jti/iat 字段)。

参数:

data -- JWT payload 字典

返回:

TokenPayload 实例