• yangjianbo's avatar
    fix(auth): 修复 RefreshToken 使用过期 token 时的 nil pointer panic · 39433f2a
    yangjianbo authored
    
    
    问题分析:
    - RefreshToken 允许过期 token 继续流程(用于无感刷新)
    - 但 ValidateToken 在 token 过期时返回 nil claims
    - 导致后续访问 claims.UserID 时触发 panic
    
    修复方案:
    - 修改 ValidateToken,在检测到 ErrTokenExpired 时仍然返回 claims
    - jwt-go 在解析时即使遇到过期错误,token.Claims 仍会被填充
    - 这样 RefreshToken 可以正常获取用户信息并生成新 token
    
    新增测试:
    - TestAuthService_ValidateToken_ExpiredReturnsClaimsWithError
    - TestAuthService_RefreshToken_ExpiredTokenNoPanic
    Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
    39433f2a
auth_service.go 13 KB