diff --git a/src/hooks.server.ts b/src/hooks.server.ts new file mode 100644 index 0000000..5d810d4 --- /dev/null +++ b/src/hooks.server.ts @@ -0,0 +1,22 @@ +// src/hooks.server.ts +import type { Handle } from '@sveltejs/kit'; +import { generateUserId } from '$lib/generateUserId.js'; + +export const handle: Handle = async ({ event, resolve }) => { + const cactoideUserId = event.cookies.get('cactoideUserId'); + const userId = generateUserId(); + + const DAYS = 400; // practical upper bound in many browsers for cookies + const MAX_AGE = 60 * 60 * 24 * DAYS; + const PATH = '/'; + + if (!cactoideUserId) { + console.debug(`There is no cactoideUserId cookie, generating new one...`); + event.cookies.set('cactoideUserId', userId, { path: PATH, maxAge: MAX_AGE }); + } else { + console.debug(`cactoideUserId: ${cactoideUserId}`); + console.debug(`cactoideUserId cookie found, using existing one...`); + } + + return resolve(event); +}; diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index 6c78122..04fe472 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -1,20 +1,5 @@ -import { generateUserId } from '$lib/generateUserId.js'; - export function load({ cookies }) { const cactoideUserId = cookies.get('cactoideUserId'); - const userId = generateUserId(); - - const DAYS = 400; // practical upper bound in many browsers for cookies - const MAX_AGE = 60 * 60 * 24 * DAYS; - const PATH = '/'; - - if (!cactoideUserId) { - console.debug(`There is no cactoideUserId cookie, generating new one...`); - cookies.set('cactoideUserId', userId, { path: PATH, maxAge: MAX_AGE }); - } else { - console.debug(`cactoideUserId: ${cactoideUserId}`); - console.debug(`cactoideUserId cookie found, using existing one...`); - } return { cactoideUserId