diff --git a/apps/login/src/lib/server/passkeys.ts b/apps/login/src/lib/server/passkeys.ts index 5ad170f8d3f..366c54295a8 100644 --- a/apps/login/src/lib/server/passkeys.ts +++ b/apps/login/src/lib/server/passkeys.ts @@ -37,12 +37,18 @@ export async function registerPasskeyLink( sessionToken: sessionCookie.token, }); - const domain = headers().get("host"); + const host = headers().get("host"); - if (!domain) { + if (!host) { throw new Error("Could not get domain"); } + const [hostname, port] = host.split(":"); + + if (!hostname) { + throw new Error("Could not get hostname"); + } + const userId = session?.session?.factors?.user?.id; if (!userId) { @@ -60,7 +66,7 @@ export async function registerPasskeyLink( throw new Error("Missing code in response"); } - return registerPasskey(userId, registerLink.code, domain); + return registerPasskey(userId, registerLink.code, hostname); } export async function verifyPasskey(command: VerifyPasskeyCommand) { diff --git a/apps/login/src/lib/server/session.ts b/apps/login/src/lib/server/session.ts index 7700b650b80..2cd618ffb36 100644 --- a/apps/login/src/lib/server/session.ts +++ b/apps/login/src/lib/server/session.ts @@ -75,7 +75,8 @@ export async function updateSession(options: UpdateSessionCommand) { challenges.webAuthN && !challenges.webAuthN.domain ) { - challenges.webAuthN.domain = host; + const [hostname, port] = host.split(":"); + challenges.webAuthN.domain = hostname; } const recent = await sessionPromise;