2024-03-07 04:37:05 +00:00
|
|
|
import { loadFlash } from 'sveltekit-flash-message/server';
|
|
|
|
|
import type { LayoutServerLoad } from '../$types';
|
2024-06-17 20:06:45 +00:00
|
|
|
import { userFullyAuthenticated, userNotFullyAuthenticated } from '$lib/server/auth-utils';
|
|
|
|
|
import { lucia } from '$lib/server/auth';
|
|
|
|
|
|
|
|
|
|
export const load: LayoutServerLoad = loadFlash(async (event) => {
|
|
|
|
|
const { url, locals, cookies } = event;
|
|
|
|
|
const { user, session } = locals;
|
|
|
|
|
|
|
|
|
|
if (userNotFullyAuthenticated(user, session)) {
|
|
|
|
|
await lucia.invalidateSession(locals.session!.id!);
|
|
|
|
|
const sessionCookie = lucia.createBlankSessionCookie();
|
|
|
|
|
cookies.set(sessionCookie.name, sessionCookie.value, {
|
|
|
|
|
path: '.',
|
|
|
|
|
...sessionCookie.attributes,
|
|
|
|
|
});
|
|
|
|
|
}
|
2024-03-07 04:37:05 +00:00
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
url: url.pathname,
|
2024-06-17 20:06:45 +00:00
|
|
|
user: userFullyAuthenticated(user, session) ? locals.user : null,
|
2024-03-07 04:37:05 +00:00
|
|
|
};
|
|
|
|
|
});
|