diff --git a/apps/login/app/(login)/passkey/login/page.tsx b/apps/login/app/(login)/passkey/login/page.tsx index d567bf68ea5..bcc366465a9 100644 --- a/apps/login/app/(login)/passkey/login/page.tsx +++ b/apps/login/app/(login)/passkey/login/page.tsx @@ -66,13 +66,14 @@ export default async function Page({ {!sessionFactors &&
} - {!loginName && ( + {!(loginName || sessionId) && ( Provide your active session as loginName param )} - {loginName && ( + {(loginName || sessionId) && ( = loginName + const recentPromise: Promise = sessionId + ? getSessionCookieById(sessionId).catch((error) => { + return Promise.reject(error); + }) + : loginName ? getSessionCookieByLoginName(loginName, organization).catch((error) => { return Promise.reject(error); }) diff --git a/apps/login/ui/LoginPasskey.tsx b/apps/login/ui/LoginPasskey.tsx index c3745094ee6..7ea0524a6c8 100644 --- a/apps/login/ui/LoginPasskey.tsx +++ b/apps/login/ui/LoginPasskey.tsx @@ -7,8 +7,10 @@ import { Button, ButtonVariants } from "./Button"; import Alert from "./Alert"; import { Spinner } from "./Spinner"; +// either loginName or sessionId must be provided type Props = { - loginName: string; + loginName?: string; + sessionId?: string; authRequestId?: string; altPassword: boolean; organization?: string; @@ -16,6 +18,7 @@ type Props = { export default function LoginPasskey({ loginName, + sessionId, authRequestId, altPassword, organization, @@ -66,6 +69,7 @@ export default function LoginPasskey({ }, body: JSON.stringify({ loginName, + sessionId, organization, challenges: { webAuthN: { @@ -94,6 +98,7 @@ export default function LoginPasskey({ }, body: JSON.stringify({ loginName, + sessionId, organization, webAuthN: { credentialAssertionData: data }, authRequestId, @@ -207,7 +212,15 @@ export default function LoginPasskey({ type="button" variant={ButtonVariants.Secondary} onClick={() => { - const params: any = { loginName, alt: "true" }; + const params: any = { alt: "true" }; + + if (loginName) { + params.loginName = loginName; + } + + if (sessionId) { + params.sessionId = sessionId; + } if (authRequestId) { params.authRequestId = authRequestId;