diff --git a/apps/login/src/app/(login)/mfa/page.tsx b/apps/login/src/app/(login)/mfa/page.tsx index 1101bdb58de..f469fbf38b3 100644 --- a/apps/login/src/app/(login)/mfa/page.tsx +++ b/apps/login/src/app/(login)/mfa/page.tsx @@ -16,8 +16,7 @@ export default async function Page({ }: { searchParams: Record; }) { - const { loginName, checkAfter, authRequestId, organization, sessionId } = - searchParams; + const { loginName, authRequestId, organization, sessionId } = searchParams; const sessionFactors = sessionId ? await loadSessionById(sessionId, organization) diff --git a/apps/login/src/app/(login)/u2f/set/page.tsx b/apps/login/src/app/(login)/u2f/set/page.tsx index ac3d24653bb..ccd99dcb1bf 100644 --- a/apps/login/src/app/(login)/u2f/set/page.tsx +++ b/apps/login/src/app/(login)/u2f/set/page.tsx @@ -10,7 +10,7 @@ export default async function Page({ }: { searchParams: Record; }) { - const { loginName, organization, authRequestId } = searchParams; + const { loginName, organization, authRequestId, checkAfter } = searchParams; const sessionFactors = await loadMostRecentSession({ loginName, @@ -49,9 +49,11 @@ export default async function Page({ {sessionFactors?.id && ( )} diff --git a/apps/login/src/ui/RegisterU2F.tsx b/apps/login/src/ui/RegisterU2F.tsx index 8c16c3b3902..bb80159f184 100644 --- a/apps/login/src/ui/RegisterU2F.tsx +++ b/apps/login/src/ui/RegisterU2F.tsx @@ -11,15 +11,19 @@ import { Button, ButtonVariants } from "./Button"; import { Spinner } from "./Spinner"; type Props = { + loginName?: string; sessionId: string; authRequestId?: string; organization?: string; + checkAfter: boolean; }; export default function RegisterU2F({ + loginName, sessionId, organization, authRequestId, + checkAfter, }: Props) { const [error, setError] = useState(""); @@ -140,23 +144,31 @@ export default function RegisterU2F({ return; } - const params = new URLSearchParams(); + const paramsToContinue = new URLSearchParams({}); + let urlToContinue = "/accounts"; - if (organization) { - params.set("organization", organization); + if (sessionId) { + paramsToContinue.append("sessionId", sessionId); } - - // redirect to verify or sign in if (authRequestId) { - params.set("authRequestId", authRequestId); - params.set("sessionId", sessionId); - // params.set("altPassword", ${false}); // without setting altPassword this does not allow password - // params.set("loginName", resp.loginName); - - router.push("/u2f?" + params); - } else { - router.push("/accounts?" + params); + paramsToContinue.append("authRequestId", authRequestId); } + if (loginName) { + paramsToContinue.append("loginName", loginName); + } + if (organization) { + paramsToContinue.append("organization", organization); + } + + if (checkAfter) { + urlToContinue = `/u2f?` + paramsToContinue; + } else if (authRequestId && sessionId) { + urlToContinue = `/login?` + paramsToContinue; + } else if (loginName) { + urlToContinue = `/signedin?` + paramsToContinue; + } + + router.push(urlToContinue); } setLoading(false);