From ead206a1886873143d65a1a71bcc5e78ac40a8a9 Mon Sep 17 00:00:00 2001 From: peintnermax Date: Mon, 21 Aug 2023 17:00:29 +0200 Subject: [PATCH] fix webauthn flow, idp flow --- apps/login/app/api/idp/start/route.ts | 8 +++++++- apps/login/lib/zitadel.ts | 23 ++++++++++------------- apps/login/ui/LoginPasskey.tsx | 1 - packages/zitadel-server/src/index.ts | 4 ++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/apps/login/app/api/idp/start/route.ts b/apps/login/app/api/idp/start/route.ts index 84ef0547a25..18a7f61e3bb 100644 --- a/apps/login/app/api/idp/start/route.ts +++ b/apps/login/app/api/idp/start/route.ts @@ -6,7 +6,13 @@ export async function POST(request: NextRequest) { if (body) { let { idpId, successUrl, failureUrl } = body; - return startIdentityProviderFlow(server, { idpId, successUrl, failureUrl }) + return startIdentityProviderFlow(server, { + idpId, + urls: { + successUrl, + failureUrl, + }, + }) .then((resp) => { return NextResponse.json(resp); }) diff --git a/apps/login/lib/zitadel.ts b/apps/login/lib/zitadel.ts index 35362aa150b..62be6b6e0b9 100644 --- a/apps/login/lib/zitadel.ts +++ b/apps/login/lib/zitadel.ts @@ -22,7 +22,6 @@ import { SetSessionResponse, DeleteSessionResponse, VerifyPasskeyRegistrationResponse, - ChallengeKind, LoginSettings, GetLoginSettingsResponse, ListAuthenticationMethodTypesResponse, @@ -34,6 +33,7 @@ import { GetAuthRequestRequest, CreateCallbackRequest, CreateCallbackResponse, + RequestChallenges, } from "@zitadel/server"; export const zitadelConfig: ZitadelServerOptions = { @@ -100,9 +100,8 @@ export async function getPasswordComplexitySettings( export async function createSession( server: ZitadelServer, loginName: string, - domain: string, password: string | undefined, - challenges: ChallengeKind[] | undefined + challenges: RequestChallenges ): Promise { const sessionService = session.getSession(server); return password @@ -110,12 +109,12 @@ export async function createSession( { checks: { user: { loginName }, password: { password } }, challenges, - domain, }, {} ) : sessionService.createSession( - { checks: { user: { loginName } }, domain }, + { checks: { user: { loginName } }, challenges }, + {} ); } @@ -124,19 +123,18 @@ export async function setSession( server: ZitadelServer, sessionId: string, sessionToken: string, - domain: string | undefined, password: string | undefined, - passkey: { credentialAssertionData: any } | undefined, - challenges: ChallengeKind[] | undefined + webAuthN: { credentialAssertionData: any } | undefined, + challenges: RequestChallenges ): Promise { const sessionService = session.getSession(server); - const payload = { sessionId, sessionToken, challenges, domain }; + const payload = { sessionId, sessionToken, challenges }; return password ? sessionService.setSession( { ...payload, - checks: { password: { password }, passkey }, + checks: { password: { password }, webAuthN }, }, {} ) @@ -206,14 +204,13 @@ export async function addHumanUser( export async function startIdentityProviderFlow( server: ZitadelServer, - { idpId, successUrl, failureUrl }: StartIdentityProviderFlowRequest + { idpId, urls }: StartIdentityProviderFlowRequest ): Promise { const userService = user.getUser(server); return userService.startIdentityProviderFlow({ idpId, - successUrl, - failureUrl, + urls, }); } diff --git a/apps/login/ui/LoginPasskey.tsx b/apps/login/ui/LoginPasskey.tsx index ce3425afeba..74de10ae4d8 100644 --- a/apps/login/ui/LoginPasskey.tsx +++ b/apps/login/ui/LoginPasskey.tsx @@ -2,7 +2,6 @@ import { useEffect, useRef, useState } from "react"; import { useRouter } from "next/navigation"; -import { Challenges_Passkey } from "@zitadel/server"; import { coerceToArrayBuffer, coerceToBase64Url } from "#/utils/base64"; import { Button, ButtonVariants } from "./Button"; import Alert from "./Alert"; diff --git a/packages/zitadel-server/src/index.ts b/packages/zitadel-server/src/index.ts index ae316a2881d..8dbe8d4809a 100644 --- a/packages/zitadel-server/src/index.ts +++ b/packages/zitadel-server/src/index.ts @@ -20,9 +20,9 @@ export { } from "./proto/server/zitadel/settings/v2alpha/login_settings"; export { - ChallengeKind, + RequestChallenges, Challenges, - Challenges_Passkey, + Challenges_WebAuthN, } from "./proto/server/zitadel/session/v2alpha/challenge"; export {