diff --git a/apps/web/pages/auth/sso/[provider].tsx b/apps/web/pages/auth/sso/[provider].tsx
index 8aa522667f..5ea01f8dc9 100644
--- a/apps/web/pages/auth/sso/[provider].tsx
+++ b/apps/web/pages/auth/sso/[provider].tsx
@@ -19,9 +19,8 @@ export default function Provider(props: SSOProviderPageProps) {
const router = useRouter();
useEffect(() => {
+ const email = searchParams?.get("email");
if (props.provider === "saml") {
- const email = searchParams?.get("email");
-
if (!email) {
router.push(`/auth/error?error=Email not provided`);
return;
@@ -33,6 +32,8 @@ export default function Provider(props: SSOProviderPageProps) {
}
signIn("saml", {}, { tenant: props.tenant, product: props.product });
+ } else if (props.provider === "google" && email) {
+ signIn("google", {}, { login_hint: email });
} else {
signIn(props.provider);
}
diff --git a/apps/web/pages/signup.tsx b/apps/web/pages/signup.tsx
index 49015ba22a..2620efd175 100644
--- a/apps/web/pages/signup.tsx
+++ b/apps/web/pages/signup.tsx
@@ -428,8 +428,7 @@ export default function Signup({
: t("create_account")}
- {/* Continue with Social Logins - Only for non-invite links */}
- {token || (!isGoogleLoginEnabled && !isSAMLLoginEnabled) ? null : (
+ {!isGoogleLoginEnabled && !isSAMLLoginEnabled ? null : (
@@ -440,91 +439,93 @@ export default function Signup({
)}
- {/* Social Logins - Only for non-invite links*/}
- {!token && (
-
- {isGoogleLoginEnabled ? (
-
- }
- className={classNames(
- "w-full justify-center rounded-md text-center",
- formMethods.formState.errors.username ? "opacity-50" : ""
- )}
- onClick={async () => {
- setIsGoogleLoading(true);
- const username = formMethods.getValues("username");
- const baseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL;
- const GOOGLE_AUTH_URL = `${baseUrl}/auth/sso/google`;
- if (username) {
- // If username is present we save it in query params to check for premium
- const searchQueryParams = new URLSearchParams();
- searchQueryParams.set("username", username);
- localStorage.setItem("username", username);
- router.push(`${GOOGLE_AUTH_URL}?${searchQueryParams.toString()}`);
- return;
- }
- router.push(GOOGLE_AUTH_URL);
- }}>
- Google
-
- ) : null}
- {isSAMLLoginEnabled ? (
-
+ ) : null}
+ {isSAMLLoginEnabled ? (
+
{
+ if (!formMethods.getValues("username")) {
+ formMethods.trigger("username");
+ }
+ if (!formMethods.getValues("email")) {
+ formMethods.trigger("email");
+
+ return;
+ }
+ const username = formMethods.getValues("username");
+ if (!username) {
+ showToast("error", t("username_required"));
+ return;
+ }
+ localStorage.setItem("username", username);
+ const sp = new URLSearchParams();
+ // @NOTE: don't remove username query param as it's required right now for stripe payment page
+ sp.set("username", username);
+ sp.set("email", formMethods.getValues("email"));
+ router.push(
+ `${process.env.NEXT_PUBLIC_WEBAPP_URL}/auth/sso/saml` + `?${sp.toString()}`
+ );
+ }}>
+
+ {t("saml_sso")}
+
+ ) : null}
+
{/* Already have an account & T&C */}