Files
Musify/web-player/src/hooks.server.ts
T
Admin a7929c0ac9
CI/CD / WebPlayer (push) Successful in 39s
CI/CD / Deploy (push) Canceled after 0s
CI/CD / BackEnd (push) Canceled after 39s
Enhance upload functionality with genre selection and validation; refactor session cookie handling
2026-09-23 18:33:21 +02:00

42 lines
980 B
TypeScript

import type { Handle } from '@sveltejs/kit';
import {
clearSessionCookie,
decodeSession,
encodeSession,
readSessionCookie,
refreshSession,
writeSessionCookie
} from '$lib/server/auth';
import { authConfig } from '$lib/server/config';
export const handle: Handle = async ({ event, resolve }) => {
let session = await decodeSession(readSessionCookie(event.cookies));
if (
session &&
session.expiresAt - authConfig.refreshThresholdSeconds <= Math.floor(Date.now() / 1000)
) {
session = await refreshSession(session);
if (session) {
writeSessionCookie(event.cookies, await encodeSession(session), event.url);
} else {
clearSessionCookie(event.cookies);
}
}
if (session) {
event.locals.user = {
sub: session.sub,
name: session.name,
email: session.email,
picture: session.picture
};
event.locals.accessToken = session.accessToken;
} else {
event.locals.user = null;
event.locals.accessToken = null;
}
return resolve(event);
};