From dbf458c685b131903bba65ab49a8dc95ebc00e6a Mon Sep 17 00:00:00 2001 From: Max Peintner Date: Tue, 10 Jun 2025 14:02:35 +0200 Subject: [PATCH] idpIntent properties --- .../app/(login)/idp/[provider]/success/page.tsx | 1 + .../src/components/idps/pages/complete-idp.tsx | 6 ++++++ .../components/register-form-idp-incomplete.tsx | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/apps/login/src/app/(login)/idp/[provider]/success/page.tsx b/apps/login/src/app/(login)/idp/[provider]/success/page.tsx index 3e4a7b253a..b56a425138 100644 --- a/apps/login/src/app/(login)/idp/[provider]/success/page.tsx +++ b/apps/login/src/app/(login)/idp/[provider]/success/page.tsx @@ -248,6 +248,7 @@ export default async function Page(props: { if (options?.isCreationAllowed) { return completeIDP({ branding, + idpIntent: { idpIntentId: id, idpIntentToken: token }, idpInformation, organization, requestId, diff --git a/apps/login/src/components/idps/pages/complete-idp.tsx b/apps/login/src/components/idps/pages/complete-idp.tsx index 4443a9317b..a2a89265c8 100644 --- a/apps/login/src/components/idps/pages/complete-idp.tsx +++ b/apps/login/src/components/idps/pages/complete-idp.tsx @@ -10,12 +10,17 @@ export async function completeIDP({ requestId, organization, branding, + idpIntent, }: { userId: string; idpInformation: IDPInformation; requestId?: string; organization?: string; branding?: BrandingSettings; + idpIntent: { + idpIntentId: string; + idpIntentToken: string; + }; }) { const locale = getLocale(); const t = await getTranslations({ locale, namespace: "idp" }); @@ -31,6 +36,7 @@ export async function completeIDP({ idpInformation={idpInformation} requestId={requestId} organization={organization} + idpIntent={idpIntent} /> diff --git a/apps/login/src/components/register-form-idp-incomplete.tsx b/apps/login/src/components/register-form-idp-incomplete.tsx index 35324be2e2..5fd7e43786 100644 --- a/apps/login/src/components/register-form-idp-incomplete.tsx +++ b/apps/login/src/components/register-form-idp-incomplete.tsx @@ -1,5 +1,6 @@ "use client"; +import { registerUserAndLinkToIDP } from "@/lib/server/register"; import { IDPInformation } from "@zitadel/proto/zitadel/user/v2/idp_pb"; import { useTranslations } from "next-intl"; import { useRouter } from "next/navigation"; @@ -23,13 +24,20 @@ type Inputs = type Props = { organization?: string; requestId?: string; - idpInformation?: IDPInformation; + idpIntent: { + idpIntentId: string; + idpIntentToken: string; + }; + idpInformation: IDPInformation; + userId: string; }; export function RegisterFormIDPIncomplete({ organization, requestId, + idpIntent, idpInformation, + userId, }: Props) { const t = useTranslations("register"); @@ -51,11 +59,13 @@ export function RegisterFormIDPIncomplete({ async function submitAndRegister(values: Inputs) { setLoading(true); const response = await registerUserAndLinkToIDP({ + userId: userId, email: values.email, firstName: values.firstname, lastName: values.lastname, organization: organization, requestId: requestId, + idpIntent: idpIntent, }) .catch(() => { setError("Could not register user"); @@ -130,7 +140,7 @@ export function RegisterFormIDPIncomplete({