refactor login page, change routes to token-based, add service classes
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user