diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index a93843c80a..f18d01fce4 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -103,8 +103,10 @@ "auth": { "account_exists": "Account exists with different credential - Login to link both accounts", "all_sign_in_options": "All sign in options", + "continue_with_auth_provider": "Continue with {provider}", "continue_with_email": "Continue with Email", "continue_with_github": "Continue with GitHub", + "continue_with_github_enterprise": "Continue with GitHub Enterprise", "continue_with_google": "Continue with Google", "continue_with_microsoft": "Continue with Microsoft", "email": "Email", diff --git a/packages/hoppscotch-common/src/components/firebase/Login.vue b/packages/hoppscotch-common/src/components/firebase/Login.vue index a9cd44011d..cc1eacac98 100644 --- a/packages/hoppscotch-common/src/components/firebase/Login.vue +++ b/packages/hoppscotch-common/src/components/firebase/Login.vue @@ -23,10 +23,10 @@ @click="provider.action" /> -
+
{ await item.onClick() @@ -199,10 +199,33 @@ onMounted(async () => { allowedAuthProviders = enabledAuthProviders // setup the additional login items - additonalLoginItems = - platform.auth.additionalLoginItems?.filter((item) => - res.right.includes(item.id) - ) ?? [] + platform.auth.additionalLoginItems?.forEach((item) => { + if (res.right.includes(item.id)) { + additionalLoginItems.push(item) + } + + // since the BE send the OIDC auth providers as OIDC:providerName, + // we need to split the string and use the providerName as the text + if (item.id === "OIDC") { + res.right + .filter((provider) => provider.startsWith("OIDC")) + .forEach((provider) => { + const OIDCName = provider.split(":")[1] + const loginItemText = OIDCName + ? () => + t("auth.continue_with_auth_provider", { + provider: OIDCName, + }) + : item.text + + const OIDCLoginItem = { + ...item, + text: loginItemText, + } + additionalLoginItems.push(OIDCLoginItem) + }) + } + }) isLoadingAllowedAuthProviders.value = false }) @@ -311,6 +334,14 @@ const authProvidersAvailable: AuthProviderItem[] = [ action: signInWithGithub, isLoading: signingInWithGitHub, }, + // the authprovider either send github or github:enterprise and both are handled by the same route + { + id: "GITHUB:ENTERPRISE", + icon: IconGithub, + label: t("auth.continue_with_github_enterprise"), + action: signInWithGithub, + isLoading: signingInWithGitHub, + }, { id: "GOOGLE", icon: IconGoogle,