auth + player

This commit is contained in:
2024-03-11 15:29:15 +01:00
parent 8b4c542cc3
commit 40d2342211
38 changed files with 6229 additions and 120 deletions

View File

@@ -0,0 +1,57 @@
import { setError, superValidate } from "sveltekit-superforms";
import { fail } from "@sveltejs/kit";
import { formSchema } from "$lib/components/organisms/auth/schema";
import { zod } from "sveltekit-superforms/adapters";
import { db, usersTable } from "$lib/db";
import bcrypt from "bcrypt";
import * as authService from "$lib/services/auth.server";
/**
* @type {import("./$types").PageServerLoad}
*/
export const load = async () => {
return {
form: await superValidate(zod(formSchema)),
};
};
/**
* @type {import("@sveltejs/kit").Actions}
*/
export const actions = {
signup: async (event) => {
const form = await superValidate(event, zod(formSchema));
if (!form.valid) {
return fail(400, {
form,
});
}
// await (async () => {
// return new Promise((res, rej) => {
// setTimeout(res, 5000)
// })
// })()
const newUser = await db.insert(usersTable).values({
name: form.data.name,
email: form.data.email,
hashed_password: (await bcrypt.hash(form.data.password, 10)),
}).returning({ id: usersTable.id }).onConflictDoNothing({ target: usersTable.email });
if (newUser.length === 0) return setError(form, "email", "Email already taken.", {
status: 409
});
const sessionId = await authService.createSession(newUser[0].id);
event.cookies.set("token", sessionId, {
path: "/",
expires: new Date("01-01-2025"),
secure: false
});
return {
form,
};
},
};