MCPcopy Create free account
hub / github.com/codeaashu/claude-code / buildAuthUrl

Function buildAuthUrl

src/services/oauth/client.ts:46–105  ·  view source on GitHub ↗
({
  codeChallenge,
  state,
  port,
  isManual,
  loginWithClaudeAi,
  inferenceOnly,
  orgUUID,
  loginHint,
  loginMethod,
}: {
  codeChallenge: string
  state: string
  port: number
  isManual: boolean
  loginWithClaudeAi?: boolean
  inferenceOnly?: boolean
  orgUUID?: string
  loginHint?: string
  loginMethod?: string
})

Source from the content-addressed store, hash-verified

44}
45
46export function buildAuthUrl({
47 codeChallenge,
48 state,
49 port,
50 isManual,
51 loginWithClaudeAi,
52 inferenceOnly,
53 orgUUID,
54 loginHint,
55 loginMethod,
56}: {
57 codeChallenge: string
58 state: string
59 port: number
60 isManual: boolean
61 loginWithClaudeAi?: boolean
62 inferenceOnly?: boolean
63 orgUUID?: string
64 loginHint?: string
65 loginMethod?: string
66}): string {
67 const authUrlBase = loginWithClaudeAi
68 ? getOauthConfig().CLAUDE_AI_AUTHORIZE_URL
69 : getOauthConfig().CONSOLE_AUTHORIZE_URL
70
71 const authUrl = new URL(authUrlBase)
72 authUrl.searchParams.append('code', 'true') // this tells the login page to show Claude Max upsell
73 authUrl.searchParams.append('client_id', getOauthConfig().CLIENT_ID)
74 authUrl.searchParams.append('response_type', 'code')
75 authUrl.searchParams.append(
76 'redirect_uri',
77 isManual
78 ? getOauthConfig().MANUAL_REDIRECT_URL
79 : `http://localhost:${port}/callback`,
80 )
81 const scopesToUse = inferenceOnly
82 ? [CLAUDE_AI_INFERENCE_SCOPE] // Long-lived inference-only tokens
83 : ALL_OAUTH_SCOPES
84 authUrl.searchParams.append('scope', scopesToUse.join(' '))
85 authUrl.searchParams.append('code_challenge', codeChallenge)
86 authUrl.searchParams.append('code_challenge_method', 'S256')
87 authUrl.searchParams.append('state', state)
88
89 // Add orgUUID as URL param if provided
90 if (orgUUID) {
91 authUrl.searchParams.append('orgUUID', orgUUID)
92 }
93
94 // Pre-populate email on the login form (standard OIDC parameter)
95 if (loginHint) {
96 authUrl.searchParams.append('login_hint', loginHint)
97 }
98
99 // Request a specific login method (e.g. 'sso', 'magic_link', 'google')
100 if (loginMethod) {
101 authUrl.searchParams.append('login_method', loginMethod)
102 }
103

Callers

nothing calls this directly

Calls 3

getOauthConfigFunction · 0.85
toStringMethod · 0.65
appendMethod · 0.45

Tested by

no test coverage detected