Use provider query parameter (#251662)

The identity team are gonna take this direction instead.
This commit is contained in:
Tyler James Leonhardt
2025-06-17 09:06:36 -07:00
committed by GitHub
parent 57c041e9e3
commit 559c2fa308

View File

@@ -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<string> {
@@ -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';
}