diff --git a/apps/login/src/app/login/route.ts b/apps/login/src/app/login/route.ts index 0e181b76f1..0cf7f44a9c 100644 --- a/apps/login/src/app/login/route.ts +++ b/apps/login/src/app/login/route.ts @@ -215,11 +215,24 @@ export async function GET(request: NextRequest) { new URLSearchParams(params), }, }).then((resp) => { - if ( - resp.nextStep.value && - typeof resp.nextStep.value === "string" - ) { + if (resp.nextStep.case === "authUrl" && resp.nextStep.value) { return NextResponse.redirect(resp.nextStep.value); + } else if ( + resp.nextStep.case === "postForm" && + resp.nextStep.value + ) { + const postCall = resp.nextStep.value; + + const redirectUrl = constructUrl(request, "/saml-post"); + + redirectUrl.searchParams.set("url", url); + redirectUrl.searchParams.set("RelayState", postCall.relayState); + redirectUrl.searchParams.set( + "SAMLResponse", + postCall.samlResponse, + ); + + return NextResponse.redirect(redirectUrl.toString()); } }); } diff --git a/apps/login/src/lib/zitadel.ts b/apps/login/src/lib/zitadel.ts index e148e7c0be..f23b7edecf 100644 --- a/apps/login/src/lib/zitadel.ts +++ b/apps/login/src/lib/zitadel.ts @@ -962,7 +962,6 @@ export async function startIdentityProviderFlow({ urls, }: { serviceUrl: string; - idpId: string; urls: RedirectURLsJson; }) {