feat(player-auth): add JWT TTL check and AES wrapped token support

1. 新增JWT有效期校验,限制exp-iat最大时长并支持强制校验iat字段
2. 新增AES-GCM密文Token解包能力,支持非标准JWT格式的令牌传递
3. 新增相关配置项和环境变量,可灵活调整校验策略
This commit is contained in:
2026-05-14 09:37:52 +08:00
parent 9d3d086adc
commit c9c1fecfcf
4 changed files with 148 additions and 2 deletions

View File

@@ -198,6 +198,12 @@ LOTTERY_JWT_ALGORITHM=HS256
LOTTERY_JWT_CLAIM_SITE_CODE=site_code
# JWT 内表示主站玩家标识的 claim 名
LOTTERY_JWT_CLAIM_SITE_PLAYER_ID=site_player_id
# JWT 允许的最长有效窗exp-iat 不得超过此值;默认 3005 分钟)
LOTTERY_JWT_MAX_TTL_SECONDS=300
# 是否要求 JWT 含 iat建议 true与短效 Token 策略一致)
LOTTERY_JWT_REQUIRE_IAT=true
# 可选32 字节 AES 密钥再 Base64用于 URL 传递的密文 Token 解包为内层 JWT
# LOTTERY_PLAYER_TOKEN_AES_KEY=
# 管理端登录Sanctum PAT 有效天数(签发时刻起),至少 1到期需重新登录
ADMIN_API_TOKEN_TTL_DAYS=7