fix webauthn flow, idp flow

This commit is contained in:
peintnermax
2023-08-21 17:00:29 +02:00
parent e301f6a198
commit ead206a188
4 changed files with 19 additions and 17 deletions

View File

@@ -6,7 +6,13 @@ export async function POST(request: NextRequest) {
if (body) { if (body) {
let { idpId, successUrl, failureUrl } = body; let { idpId, successUrl, failureUrl } = body;
return startIdentityProviderFlow(server, { idpId, successUrl, failureUrl }) return startIdentityProviderFlow(server, {
idpId,
urls: {
successUrl,
failureUrl,
},
})
.then((resp) => { .then((resp) => {
return NextResponse.json(resp); return NextResponse.json(resp);
}) })

View File

@@ -22,7 +22,6 @@ import {
SetSessionResponse, SetSessionResponse,
DeleteSessionResponse, DeleteSessionResponse,
VerifyPasskeyRegistrationResponse, VerifyPasskeyRegistrationResponse,
ChallengeKind,
LoginSettings, LoginSettings,
GetLoginSettingsResponse, GetLoginSettingsResponse,
ListAuthenticationMethodTypesResponse, ListAuthenticationMethodTypesResponse,
@@ -34,6 +33,7 @@ import {
GetAuthRequestRequest, GetAuthRequestRequest,
CreateCallbackRequest, CreateCallbackRequest,
CreateCallbackResponse, CreateCallbackResponse,
RequestChallenges,
} from "@zitadel/server"; } from "@zitadel/server";
export const zitadelConfig: ZitadelServerOptions = { export const zitadelConfig: ZitadelServerOptions = {
@@ -100,9 +100,8 @@ export async function getPasswordComplexitySettings(
export async function createSession( export async function createSession(
server: ZitadelServer, server: ZitadelServer,
loginName: string, loginName: string,
domain: string,
password: string | undefined, password: string | undefined,
challenges: ChallengeKind[] | undefined challenges: RequestChallenges
): Promise<CreateSessionResponse | undefined> { ): Promise<CreateSessionResponse | undefined> {
const sessionService = session.getSession(server); const sessionService = session.getSession(server);
return password return password
@@ -110,12 +109,12 @@ export async function createSession(
{ {
checks: { user: { loginName }, password: { password } }, checks: { user: { loginName }, password: { password } },
challenges, challenges,
domain,
}, },
{} {}
) )
: sessionService.createSession( : sessionService.createSession(
{ checks: { user: { loginName } }, domain }, { checks: { user: { loginName } }, challenges },
{} {}
); );
} }
@@ -124,19 +123,18 @@ export async function setSession(
server: ZitadelServer, server: ZitadelServer,
sessionId: string, sessionId: string,
sessionToken: string, sessionToken: string,
domain: string | undefined,
password: string | undefined, password: string | undefined,
passkey: { credentialAssertionData: any } | undefined, webAuthN: { credentialAssertionData: any } | undefined,
challenges: ChallengeKind[] | undefined challenges: RequestChallenges
): Promise<SetSessionResponse | undefined> { ): Promise<SetSessionResponse | undefined> {
const sessionService = session.getSession(server); const sessionService = session.getSession(server);
const payload = { sessionId, sessionToken, challenges, domain }; const payload = { sessionId, sessionToken, challenges };
return password return password
? sessionService.setSession( ? sessionService.setSession(
{ {
...payload, ...payload,
checks: { password: { password }, passkey }, checks: { password: { password }, webAuthN },
}, },
{} {}
) )
@@ -206,14 +204,13 @@ export async function addHumanUser(
export async function startIdentityProviderFlow( export async function startIdentityProviderFlow(
server: ZitadelServer, server: ZitadelServer,
{ idpId, successUrl, failureUrl }: StartIdentityProviderFlowRequest { idpId, urls }: StartIdentityProviderFlowRequest
): Promise<StartIdentityProviderFlowResponse> { ): Promise<StartIdentityProviderFlowResponse> {
const userService = user.getUser(server); const userService = user.getUser(server);
return userService.startIdentityProviderFlow({ return userService.startIdentityProviderFlow({
idpId, idpId,
successUrl, urls,
failureUrl,
}); });
} }

View File

@@ -2,7 +2,6 @@
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { Challenges_Passkey } from "@zitadel/server";
import { coerceToArrayBuffer, coerceToBase64Url } from "#/utils/base64"; import { coerceToArrayBuffer, coerceToBase64Url } from "#/utils/base64";
import { Button, ButtonVariants } from "./Button"; import { Button, ButtonVariants } from "./Button";
import Alert from "./Alert"; import Alert from "./Alert";

View File

@@ -20,9 +20,9 @@ export {
} from "./proto/server/zitadel/settings/v2alpha/login_settings"; } from "./proto/server/zitadel/settings/v2alpha/login_settings";
export { export {
ChallengeKind, RequestChallenges,
Challenges, Challenges,
Challenges_Passkey, Challenges_WebAuthN,
} from "./proto/server/zitadel/session/v2alpha/challenge"; } from "./proto/server/zitadel/session/v2alpha/challenge";
export { export {