feat(ui): add server-side PocketBase client and session cookie hook

This commit is contained in:
Admin
2026-03-02 21:32:20 +05:00
parent 2f948f2a50
commit cb4be0848f
3 changed files with 195 additions and 1 deletions

23
ui/src/hooks.server.ts Normal file
View File

@@ -0,0 +1,23 @@
import type { Handle } from '@sveltejs/kit';
import { randomBytes } from 'node:crypto';
const SESSION_COOKIE = 'libnovel_session';
const ONE_YEAR = 60 * 60 * 24 * 365;
export const handle: Handle = async ({ event, resolve }) => {
let sessionId = event.cookies.get(SESSION_COOKIE);
if (!sessionId) {
sessionId = randomBytes(16).toString('hex');
event.cookies.set(SESSION_COOKIE, sessionId, {
path: '/',
httpOnly: true,
sameSite: 'lax',
maxAge: ONE_YEAR
});
}
event.locals.sessionId = sessionId;
return resolve(event);
};