从请求头中提取令牌
(r *http.Request)
| 535 | |
| 536 | // 从请求头中提取令牌 |
| 537 | func extractToken(r *http.Request) (string, error) { |
| 538 | // 获取 Authorization 头部 |
| 539 | authHeader := r.Header.Get("Authorization") |
| 540 | if authHeader == "" { |
| 541 | return "", fmt.Errorf("missing Authorization header") |
| 542 | } |
| 543 | |
| 544 | // 验证格式并提取令牌 |
| 545 | if !strings.HasPrefix(authHeader, "Bearer ") { |
| 546 | return "", fmt.Errorf("invalid Authorization header format, must start with 'Bearer '") |
| 547 | } |
| 548 | |
| 549 | // 提取令牌值 |
| 550 | token := strings.TrimPrefix(authHeader, "Bearer ") |
| 551 | if token == "" { |
| 552 | return "", fmt.Errorf("empty token in Authorization header") |
| 553 | } |
| 554 | |
| 555 | return token, nil |
| 556 | } |
| 557 | |
| 558 | // 转换任意类型的内容为字符串 |
| 559 | func contentToString(content interface{}) string { |
no outgoing calls
no test coverage detected