From 49b86d2df17badf9a37b4996b2aeb84fee7ad096 Mon Sep 17 00:00:00 2001 From: peintnermax Date: Mon, 11 Mar 2024 14:32:54 +0100 Subject: [PATCH] parse orgId from authrequest scope --- apps/login/app/(login)/login/route.ts | 14 ++++++++++++++ .../login/app/(login)/{layout.tsx => template.tsx} | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) rename apps/login/app/(login)/{layout.tsx => template.tsx} (95%) diff --git a/apps/login/app/(login)/login/route.ts b/apps/login/app/(login)/login/route.ts index c02ddfe7829..9cc4eca2d7c 100644 --- a/apps/login/app/(login)/login/route.ts +++ b/apps/login/app/(login)/login/route.ts @@ -16,6 +16,8 @@ async function loadSessions(ids: string[]): Promise { return response?.sessions ?? []; } +const ORG_SCOPE_REGEX = /urn:zitadel:iam:org:id:([0-9]*)/g; + function findSession( sessions: Session[], authRequest: AuthRequest @@ -87,6 +89,18 @@ export async function GET(request: NextRequest) { registerUrl.searchParams.set("authRequestId", authRequest?.id); } + if ( + authRequest.scope && + authRequest.scope.find((s) => ORG_SCOPE_REGEX.test(s)) + ) { + const orgId = authRequest.scope + .find((s) => ORG_SCOPE_REGEX.test(s)) + ?.match(ORG_SCOPE_REGEX)?.[1]; + console.log(orgId); + if (orgId) { + registerUrl.searchParams.set("orgId", orgId); + } + } return NextResponse.redirect(registerUrl); } diff --git a/apps/login/app/(login)/layout.tsx b/apps/login/app/(login)/template.tsx similarity index 95% rename from apps/login/app/(login)/layout.tsx rename to apps/login/app/(login)/template.tsx index 381ffbd2c35..e938635fcc1 100644 --- a/apps/login/app/(login)/layout.tsx +++ b/apps/login/app/(login)/template.tsx @@ -3,7 +3,7 @@ import React from "react"; import { getBrandingSettings, server } from "#/lib/zitadel"; import { Logo } from "#/ui/Logo"; -export default async function Layout({ +export default async function Template({ children, }: { children: React.ReactNode;