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;