Files
famdone/frontend/src/lib/server/auth.ts
T
2026-08-16 10:11:39 +01:00

27 lines
860 B
TypeScript

import { redirect } from '@sveltejs/kit';
import type { RequestEvent } from '@sveltejs/kit';
import { pbAdmin } from '$lib/server/pocketbase';
export function getSession(event: RequestEvent) {
return event.locals.user;
}
export function requireAuth(event: RequestEvent) {
const session = getSession(event);
if (!session) {
throw redirect(303, '/login');
}
return session;
}
export function clearSession(event: RequestEvent) {
event.cookies.delete('session', { path: '/' });
event.cookies.delete('pb_token', { path: '/' });
event.cookies.delete('device_token', { path: '/' });
}
// Resolve the fam slug + admin display name used for the post-login redirect.
export async function getFamContext(famId: string) {
const fam = await pbAdmin.getOne('fams', famId).catch(() => null);
return { famSlug: fam?.slug || famId, famName: fam?.name || '' };
}