34 lines
888 B
TypeScript
34 lines
888 B
TypeScript
import { fail, redirect } from '@sveltejs/kit';
|
|
import { login, setSessionCookie, setPbTokenCookie } from '$lib/server/auth';
|
|
|
|
export const actions = {
|
|
default: async (event) => {
|
|
|
|
const fd = await event.request.formData();
|
|
const email = fd.get('email') as string;
|
|
const password = fd.get('password') as string;
|
|
|
|
if (!email || !password) {
|
|
return fail(400, { error: 'Email and password required', email });
|
|
}
|
|
|
|
let result: any;
|
|
try {
|
|
result = await login(email, password);
|
|
} catch (e) {
|
|
return fail(400, { error: e instanceof Error ? e.message : 'Login failed', email });
|
|
}
|
|
|
|
setSessionCookie(event, {
|
|
famId: result.famId,
|
|
userId: result.userId,
|
|
famSlug: result.famSlug,
|
|
memberName: result.memberName,
|
|
role: result.role,
|
|
});
|
|
setPbTokenCookie(event, result.token);
|
|
|
|
throw redirect(303, `/${result.famSlug}/${result.memberName}`);
|
|
},
|
|
};
|