summaryrefslogtreecommitdiff
path: root/client/src/hooks.server.ts
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2025-07-17 23:42:55 +0200
committerJoel Klinghed <the_jk@spawned.biz>2025-07-17 23:44:11 +0200
commitbef3da2a567e3804e12355d9c3d5c09439dbe2ea (patch)
treeab7974c941bd31994da46150234976b33c2f61b5 /client/src/hooks.server.ts
parent145be2b3c92e254904d4040850e3c1e9b6a66f32 (diff)
Humble beginnings
Redirect to login if not logged in, on login session cookie is set and projects or reviews are listed.
Diffstat (limited to 'client/src/hooks.server.ts')
-rw-r--r--client/src/hooks.server.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/client/src/hooks.server.ts b/client/src/hooks.server.ts
new file mode 100644
index 0000000..4a7a5cb
--- /dev/null
+++ b/client/src/hooks.server.ts
@@ -0,0 +1,29 @@
+import { base } from '$app/paths';
+import { redirect, type Handle, type HandleFetch } from '@sveltejs/kit';
+
+export const handleFetch: HandleFetch = async ({ event, request, fetch }) => {
+ return fetch(request).then((resp) => {
+ if (resp.status == 401) {
+ const url = new URL(event.request.url);
+ const ret = url.pathname + url.search;
+ redirect(307, base + '/login?return=' + encodeURIComponent(ret));
+ }
+ return resp;
+ });
+};
+
+export const handle: Handle = async ({ event, resolve }) => {
+ const response = await resolve(event, {
+ filterSerializedResponseHeaders: (name) => {
+ switch (name) {
+ // used by openapi-fetch
+ case 'content-length':
+ return true;
+ default:
+ return false;
+ }
+ }
+ });
+
+ return response;
+};