refactor login page, change routes to token-based, add service classes

This commit is contained in:
2025-06-17 16:19:22 +02:00
parent 6d3e6ad047
commit 34f8fd5490
36 changed files with 405 additions and 305 deletions

View File

@@ -1,32 +1,9 @@
import { dev } from '$app/environment';
import { fail, redirect, type Cookies } from '@sveltejs/kit';
import { authenticate } from '$lib/auth';
import type { RequestEvent } from '../(angemeldet)/$types';
import { loginUser, logoutUser } from '$lib/server/authService';
import { getVorgangByCaseNumber } from '$lib/server/vorgangService.js';
const COOKIE_NAME = 'session';
/** @type {import('./$types').Actions} */
export const actions = {
login: async ({ request, cookies }: {request: Request, cookies: Cookies}) => {
const data = await request.formData();
const user = data.get('user');
const password = data.get('password');
const token = authenticate(user, password);
if (!token) return fail(400, { user, incorrect: true });
cookies.set(COOKIE_NAME, token, {
path: '/',
httpOnly: true,
sameSite: 'strict',
secure: !dev
});
throw redirect(303, '/');
},
logout: async (event: RequestEvent) => {
event.cookies.delete(COOKIE_NAME, {path: '/'});
event.locals.user = null;
return { success: true };
}
};
login: ({ request, cookies }) => loginUser({request, cookies}),
logout: (event) => logoutUser(event),
getVorgang: ({request}) => getVorgangByCaseNumber(request)
} as const;