diff --git a/src/handles/handle.ts b/src/handles/handle.ts index 3bec8b1..47fd112 100644 --- a/src/handles/handle.ts +++ b/src/handles/handle.ts @@ -8,7 +8,7 @@ const sessionConstructorHandle = (async ({event, resolve}) => { const data = await AppData.extractAppDataFromCookies(event.cookies) - logger.debug(`Session Data: ${data}`, "Session Handle") + logger.debug(`User: ${data?.user.username}\nToken ${data?.session.sessionToken}`, "Session Handle") event.locals.session = data @@ -27,6 +27,7 @@ const apiHandle = (async ({event, resolve}) => { return await resolve(event) } + // It's a backend, should not redirect if (!event.locals.session) { // Satisfies HTTP Codes: // https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/401 @@ -37,7 +38,27 @@ const apiHandle = (async ({event, resolve}) => { }) satisfies Handle +const appHandle = (async ({event, resolve}) => { + + logger.debug(event.url.pathname, "API Handle") + logger.debug(`Session Data: ${event.locals.session}`, "API Handle") + + if(!event.url.pathname.startsWith("/app/program")) { + // next handle + return await resolve(event) + } + + // It's for frontend, should redirect + if (!event.locals.session) { + return redirect(302, "/app/login") + } + + return await resolve(event) + +}) satisfies Handle + export const handles = sequence( sessionConstructorHandle, - apiHandle + apiHandle, + appHandle ) \ No newline at end of file