MCPcopy Create free account
hub / github.com/coder/coder / extractSessionToken

Function extractSessionToken

enterprise/coderd/x/chatd/chatd.go:866–886  ·  view source on GitHub ↗

extractSessionToken returns the session token carried by the given request headers. It mirrors the priority order used by apiKeyMiddleware: cookie, then Coder-Session-Token header, then Authorization: Bearer header.

(header http.Header)

Source from the content-addressed store, hash-verified

864// apiKeyMiddleware: cookie, then Coder-Session-Token header, then
865// Authorization: Bearer header.
866func extractSessionToken(header http.Header) string {
867 if header == nil {
868 return ""
869 }
870 // Cookie (browser WebSocket upgrade - most common relay case).
871 if raw := header.Get(cookieHeader); raw != "" {
872 r := &http.Request{Header: http.Header{cookieHeader: {raw}}}
873 if c, err := r.Cookie(codersdk.SessionTokenCookie); err == nil && c.Value != "" {
874 return c.Value
875 }
876 }
877 // Coder-Session-Token header (SDK / CLI callers).
878 if v := header.Get(codersdk.SessionTokenHeader); v != "" {
879 return v
880 }
881 // Authorization: Bearer <token>.
882 if v := header.Get(authorizationHeader); len(v) > 7 && strings.EqualFold(v[:7], "bearer ") {
883 return strings.TrimSpace(v[7:])
884 }
885 return ""
886}

Callers 1

dialRelayFunction · 0.85

Calls 1

GetMethod · 0.65

Tested by

no test coverage detected