You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
wwwAuth=`Bearer realm="coder", error="invalid_token", error_description="The access token audience does not match this resource"`
229
+
default:
230
+
wwwAuth=`Bearer realm="coder", error="invalid_token", error_description="The access token is invalid"`
231
+
}
232
+
casehttp.StatusForbidden:
233
+
// Map 403 to insufficient_scope per RFC 6750
234
+
wwwAuth=`Bearer realm="coder", error="insufficient_scope", error_description="The request requires higher privileges than provided by the access token"`
235
+
default:
236
+
wwwAuth=`Bearer realm="coder"`
237
+
}
238
+
239
+
rw.Header().Set("WWW-Authenticate", wwwAuth)
240
+
}
241
+
217
242
httpapi.Write(ctx, rw, code, response)
218
243
returnnil, nil, false
219
244
}
@@ -720,9 +745,14 @@ func UserRBACSubject(ctx context.Context, db database.Store, userID uuid.UUID, s
720
745
// 1: The cookie
721
746
// 2. The coder_session_token query parameter
722
747
// 3. The custom auth header
748
+
// 4. RFC 6750 Authorization: Bearer header
749
+
// 5. RFC 6750 access_token query parameter
723
750
//
724
751
// API tokens for apps are read from workspaceapps/cookies.go.
725
752
funcAPITokenFromRequest(r*http.Request) string {
753
+
// Prioritize existing Coder custom authentication methods first
754
+
// to maintain backward compatibility and existing behavior
0 commit comments