RevokeRefreshToken 撤销单个Refresh Token
(ctx context.Context, refreshToken string)
| 1599 | |
| 1600 | // RevokeRefreshToken 撤销单个Refresh Token |
| 1601 | func (s *AuthService) RevokeRefreshToken(ctx context.Context, refreshToken string) error { |
| 1602 | if s.refreshTokenCache == nil { |
| 1603 | return nil // No-op if cache not configured |
| 1604 | } |
| 1605 | if !strings.HasPrefix(refreshToken, refreshTokenPrefix) { |
| 1606 | return ErrRefreshTokenInvalid |
| 1607 | } |
| 1608 | |
| 1609 | tokenHash := hashToken(refreshToken) |
| 1610 | return s.refreshTokenCache.DeleteRefreshToken(ctx, tokenHash) |
| 1611 | } |
| 1612 | |
| 1613 | // RevokeAllUserSessions 撤销用户的所有会话(所有Refresh Token) |
| 1614 | // 用于密码更改或用户主动登出所有设备 |
no test coverage detected