boredgame/src/routes/auth/signin/+page.server.ts

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-05-21 05:18:04 +00:00
import { fail, redirect } from '@sveltejs/kit';
import { setError, superValidate } from 'sveltekit-superforms/server';
import { auth } from '$lib/server/lucia';
import { userSchema } from '$lib/config/zod-schemas';
const signInSchema = userSchema.pick({
username: true,
password: true
});
export const load = async (event) => {
const session = await event.locals.auth.validate();
if (session) {
throw redirect(302, '/');
}
// const form = await superValidate(event, signInSchema);
// return {
// form
// };
2023-05-21 05:18:04 +00:00
};
export const actions = {
default: async (event) => {
const form = await superValidate(event, signInSchema);
if (!form.valid) {
form.data.password = '';
2023-05-21 05:18:04 +00:00
return fail(400, {
form
});
}
// Adding user to the db
try {
const key = await auth.useKey('username', form.data.username, form.data.password);
const session = await auth.createSession(key.userId);
event.locals.auth.setSession(session);
} catch (e) {
// TODO: need to return error message to the client
console.error(e);
form.data.password = '';
2023-05-21 05:18:04 +00:00
return setError(form, null, 'The username or password is incorrect.');
}
form.data.username = '';
form.data.password = '';
2023-05-21 05:18:04 +00:00
return { form };
}
};