diff --git a/apps/login/app/(login)/passkey/add/page.tsx b/apps/login/app/(login)/passkey/add/page.tsx index 129ecd88565..839ac222556 100644 --- a/apps/login/app/(login)/passkey/add/page.tsx +++ b/apps/login/app/(login)/passkey/add/page.tsx @@ -10,7 +10,8 @@ export default async function Page({ }: { searchParams: Record; }) { - const { loginName, promptPasswordless, organization } = searchParams; + const { loginName, promptPasswordless, organization, authRequestId } = + searchParams; const sessionFactors = await loadSession(loginName); @@ -75,6 +76,8 @@ export default async function Page({ )} diff --git a/apps/login/lib/zitadel.ts b/apps/login/lib/zitadel.ts index 69c29abdfb8..dae509a1786 100644 --- a/apps/login/lib/zitadel.ts +++ b/apps/login/lib/zitadel.ts @@ -452,7 +452,6 @@ export async function verifyPasskeyRegistration( { passkeyId, passkeyName, - publicKeyCredential, userId, }, diff --git a/apps/login/ui/RegisterPasskey.tsx b/apps/login/ui/RegisterPasskey.tsx index 658e06aa5eb..2b3973715c5 100644 --- a/apps/login/ui/RegisterPasskey.tsx +++ b/apps/login/ui/RegisterPasskey.tsx @@ -6,16 +6,23 @@ import { useForm } from "react-hook-form"; import { useRouter } from "next/navigation"; import { Spinner } from "./Spinner"; import Alert from "./Alert"; -import { RegisterPasskeyResponse } from "@zitadel/server"; +import { AuthRequest, RegisterPasskeyResponse } from "@zitadel/server"; import { coerceToArrayBuffer, coerceToBase64Url } from "#/utils/base64"; type Inputs = {}; type Props = { sessionId: string; isPrompt: boolean; + authRequestId?: string; + organization?: string; }; -export default function RegisterPasskey({ sessionId, isPrompt }: Props) { +export default function RegisterPasskey({ + sessionId, + isPrompt, + organization, + authRequestId, +}: Props) { const { register, handleSubmit, formState } = useForm({ mode: "onBlur", }); @@ -141,7 +148,20 @@ export default function RegisterPasskey({ sessionId, isPrompt }: Props) { }, }; return submitVerify(passkeyId, "", data, sessionId).then(() => { - router.push("/accounts"); + const params = new URLSearchParams(); + + if (organization) { + params.set("organization", organization); + } + + if (authRequestId) { + params.set("authRequest", authRequestId); + params.set("sessionId", sessionId); + + router.push("/login?" + params); + } else { + router.push("/accounts?" + params); + } }); } else { setLoading(false); @@ -175,7 +195,18 @@ export default function RegisterPasskey({ sessionId, isPrompt }: Props) {