This commit is contained in:
Max Peintner
2023-06-19 15:59:16 +02:00
parent 3aa8e8fbc4
commit ed7d612660
6 changed files with 20 additions and 34 deletions

View File

@@ -15,15 +15,11 @@ export default async function Page({
const setPassword = !!(firstname && lastname && email);
console.log(setPassword);
const legal = await getLegalAndSupportSettings(server);
const passwordComplexitySettings = await getPasswordComplexitySettings(
server
);
console.log(legal);
return setPassword ? (
<div className="flex flex-col items-center space-y-4">
<h1>Set Password</h1>

View File

@@ -26,13 +26,12 @@ export async function POST(request: NextRequest) {
return createPasskeyRegistrationLink(userId)
.then((resp) => {
const code = resp.code;
console.log("code", code);
return registerPasskey(userId, code).then((resp) => {
return NextResponse.json(resp);
});
})
.catch((error) => {
console.log("error on creating passkey registration link");
console.error("error on creating passkey registration link");
return NextResponse.json(error, { status: 500 });
});
} else {

View File

@@ -1,18 +1,18 @@
import {
createPasskeyRegistrationLink,
getSession,
registerPasskey,
server,
verifyPasskeyRegistration,
} from "#/lib/zitadel";
import { getSession, server, verifyPasskeyRegistration } from "#/lib/zitadel";
import { getSessionCookieById } from "#/utils/cookies";
import { NextRequest, NextResponse } from "next/server";
import { NextRequest, NextResponse, userAgent } from "next/server";
export async function POST(request: NextRequest) {
const body = await request.json();
if (body) {
const { passkeyId, passkeyName, publicKeyCredential, sessionId } = body;
let { passkeyId, passkeyName, publicKeyCredential, sessionId } = body;
if (!!!passkeyName) {
const { browser, device, os } = userAgent(request);
passkeyName = `${device.vendor ?? ""} ${device.model ?? ""}${
device.vendor || device.model ? ", " : ""
}${os.name}${os.name ? ", " : ""}${browser.name}`;
}
const sessionCookie = await getSessionCookieById(sessionId);
const session = await getSession(
@@ -32,11 +32,9 @@ export async function POST(request: NextRequest) {
userId
)
.then((resp) => {
console.log("verifyresponse", resp);
return NextResponse.json(resp);
})
.catch((error) => {
console.log("error on verifying passkey");
return NextResponse.json(error, { status: 500 });
});
} else {

View File

@@ -254,7 +254,6 @@ export async function verifyPasskeyRegistration(
userId: string
): Promise<VerifyPasskeyRegistrationResponse> {
const userservice = user.getUser(server);
console.log(passkeyId, passkeyName, publicKeyCredential, userId);
return userservice.verifyPasskeyRegistration(
{
passkeyId,
@@ -276,20 +275,10 @@ export async function registerPasskey(
userId: string,
code: { id: string; code: string }
): Promise<any> {
// this actions will be made from the currently seleected user
const zitadelConfig: ZitadelServerOptions = {
name: "zitadel login",
apiUrl: process.env.ZITADEL_API_URL ?? "",
token: "",
};
const authserver: ZitadelServer = initializeServer(zitadelConfig);
console.log("server", authserver);
const userservice = user.getUser(server);
return userservice.registerPasskey({
userId,
code,
// returnCode: new ReturnPasskeyRegistrationCode(),
});
}

View File

@@ -52,7 +52,14 @@ export default function PasswordForm({ loginName }: Props) {
function submitPasswordAndContinue(value: Inputs): Promise<boolean | void> {
return submitPassword(value).then((resp: any) => {
return router.push(`/accounts`);
if (resp.factors && !resp.factors.passwordless) {
return router.push(
`/passkey/add?` +
new URLSearchParams({ loginName: resp.factors.user.loginName })
);
} else {
return router.push(`/accounts`);
}
});
}

View File

@@ -26,8 +26,6 @@ export default function RegisterPasskey({ sessionId }: Props) {
const router = useRouter();
async function submitRegister() {
// const link = await createPasskeyRegistrationLink(server, userId);
// console.log(link);
setError("");
setLoading(true);
const res = await fetch("/passkeys", {
@@ -83,7 +81,7 @@ export default function RegisterPasskey({ sessionId }: Props) {
function submitRegisterAndContinue(value: Inputs): Promise<boolean | void> {
return submitRegister().then((resp: RegisterPasskeyResponse) => {
const passkeyId = resp.passkeyId;
console.log("passkeyId", passkeyId);
if (
resp.publicKeyCredentialCreationOptions &&
resp.publicKeyCredentialCreationOptions.publicKey
@@ -131,7 +129,6 @@ export default function RegisterPasskey({ sessionId }: Props) {
id: resp.id,
rawId: coerceToBase64Url(rawId, "rawId"),
type: resp.type,
// response: (resp as any).response,
response: {
attestationObject: coerceToBase64Url(
attestationObject,
@@ -145,7 +142,7 @@ export default function RegisterPasskey({ sessionId }: Props) {
};
console.log(data);
return submitVerify(passkeyId, "name", data, sessionId);
return submitVerify(passkeyId, "", data, sessionId);
} else {
setLoading(false);
setError("An error on registering passkey");