From 559c2fa308394b5c90d260ff87d0764bb5382889 Mon Sep 17 00:00:00 2001 From: Tyler James Leonhardt <2644648+TylerLeonhardt@users.noreply.github.com> Date: Tue, 17 Jun 2025 09:06:36 -0700 Subject: [PATCH] Use `provider` query parameter (#251662) The identity team are gonna take this direction instead. --- extensions/github-authentication/src/flows.ts | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/extensions/github-authentication/src/flows.ts b/extensions/github-authentication/src/flows.ts index 45449fb4a10..a6922c22dc8 100644 --- a/extensions/github-authentication/src/flows.ts +++ b/extensions/github-authentication/src/flows.ts @@ -177,7 +177,7 @@ class UrlHandlerFlow implements IFlow { callbackUri, enterpriseUri, nonce, - signInProvider: authProvider, + signInProvider, uriHandler, existingLogin, logger, @@ -205,11 +205,14 @@ class UrlHandlerFlow implements IFlow { } else { searchParams.append('prompt', 'select_account'); } + if (signInProvider) { + searchParams.append('provider', signInProvider); + } // The extra toString, parse is apparently needed for env.openExternal // to open the correct URL. const uri = Uri.parse(baseUri.with({ - path: getAuthorizeUrlPath(authProvider), + path: '/login/oauth/authorize', query: searchParams.toString() }).toString(true)); await env.openExternal(uri); @@ -253,7 +256,7 @@ class LocalServerFlow implements IFlow { redirectUri, callbackUri, enterpriseUri, - signInProvider: authProvider, + signInProvider, existingLogin, logger }: IFlowTriggerOptions): Promise { @@ -277,9 +280,12 @@ class LocalServerFlow implements IFlow { } else { searchParams.append('prompt', 'select_account'); } + if (signInProvider) { + searchParams.append('provider', signInProvider); + } const loginUrl = baseUri.with({ - path: getAuthorizeUrlPath(authProvider), + path: '/login/oauth/authorize', query: searchParams.toString() }); const server = new LoopbackAuthServer(path.join(__dirname, '../media'), loginUrl.toString(true), callbackUri.toString(true)); @@ -565,12 +571,3 @@ export const enum GitHubSocialSignInProvider { export function isSocialSignInProvider(provider: unknown): provider is GitHubSocialSignInProvider { return provider === GitHubSocialSignInProvider.Google; // || provider === GitHubSocialSignInProvider.Apple; } - -export function getAuthorizeUrlPath(provider: GitHubSocialSignInProvider | undefined): string { - switch (provider) { - case GitHubSocialSignInProvider.Google: - // case GitHubSocialSignInProvider.Apple: - return `/sessions/social/${provider}/initiate`; - } - return '/login/oauth/authorize'; -}