extractBearerToken 提取 Bearer Token
(ctx *gin.Context)
| 217 | |
| 218 | // extractBearerToken 提取 Bearer Token |
| 219 | func (h *handler) extractBearerToken(ctx *gin.Context) (string, error) { |
| 220 | authHeader := ctx.GetHeader("Authorization") |
| 221 | if authHeader == "" { |
| 222 | return "", errors.New("missing authorization token") |
| 223 | } |
| 224 | |
| 225 | const bearerPrefix = "Bearer " |
| 226 | if len(authHeader) <= len(bearerPrefix) || authHeader[:len(bearerPrefix)] != bearerPrefix { |
| 227 | return "", errors.New("invalid authorization token format") |
| 228 | } |
| 229 | |
| 230 | return authHeader[len(bearerPrefix):], nil |
| 231 | } |
| 232 | |
| 233 | // addToBlacklist 将 token 加入 Redis 黑名单 |
| 234 | func (h *handler) addToBlacklist(ctx *gin.Context, authToken string, expiresAt time.Time) error { |