diff options
Diffstat (limited to 'client/src/hooks.server.ts')
| -rw-r--r-- | client/src/hooks.server.ts | 29 |
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; +}; |
