mirror of
https://github.com/BradNut/example-sveltekit-email-password-webauthn
synced 2025-09-08 17:40:27 +00:00
29 lines
832 B
TypeScript
29 lines
832 B
TypeScript
|
|
import { redirect } from "@sveltejs/kit";
|
||
|
|
import { get2FARedirect } from "$lib/server/2fa";
|
||
|
|
import { getUserPasskeyCredentials } from "$lib/server/webauthn";
|
||
|
|
|
||
|
|
import type { RequestEvent } from "./$types";
|
||
|
|
|
||
|
|
export async function load(event: RequestEvent) {
|
||
|
|
if (event.locals.user === null || event.locals.session === null) {
|
||
|
|
return redirect(302, "/login");
|
||
|
|
}
|
||
|
|
if (!event.locals.user.emailVerified) {
|
||
|
|
return redirect(302, "/verify-email");
|
||
|
|
}
|
||
|
|
if (!event.locals.user.registered2FA) {
|
||
|
|
return redirect(302, "/");
|
||
|
|
}
|
||
|
|
if (event.locals.session.twoFactorVerified) {
|
||
|
|
return redirect(302, "/");
|
||
|
|
}
|
||
|
|
if (!event.locals.user.registeredPasskey) {
|
||
|
|
return redirect(302, get2FARedirect(event.locals.user));
|
||
|
|
}
|
||
|
|
const credentials = getUserPasskeyCredentials(event.locals.user.id);
|
||
|
|
return {
|
||
|
|
credentials,
|
||
|
|
user: event.locals.user
|
||
|
|
};
|
||
|
|
}
|