diff options
| -rw-r--r-- | apps/kit/src/lib/configuration.ts | 2 | ||||
| -rw-r--r-- | apps/kit/src/routes/(main)/+layout.server.ts | 35 |
2 files changed, 25 insertions, 12 deletions
diff --git a/apps/kit/src/lib/configuration.ts b/apps/kit/src/lib/configuration.ts index 609a00f..c166025 100644 --- a/apps/kit/src/lib/configuration.ts +++ b/apps/kit/src/lib/configuration.ts @@ -2,7 +2,7 @@ export const TOP_BASE_DOMAIN = "greatoffice.app"; export const BASE_DOMAIN = "dev.greatoffice.app"; export const DEV_BASE_DOMAIN = "http://127.0.0.1"; export const API_ADDRESS = "https://api." + BASE_DOMAIN; -export const DEV_API_ADDRESS = "http://127.0.0.1:5000"; +export const DEV_API_ADDRESS = "https://127.0.0.1:5001"; export const SECONDS_BETWEEN_SESSION_CHECK = 600; export function base_domain(path: string = ""): string { diff --git a/apps/kit/src/routes/(main)/+layout.server.ts b/apps/kit/src/routes/(main)/+layout.server.ts index 9836547..ba0cd41 100644 --- a/apps/kit/src/routes/(main)/+layout.server.ts +++ b/apps/kit/src/routes/(main)/+layout.server.ts @@ -1,21 +1,34 @@ -import { api_base, CookieNames } from "$lib/configuration"; +import { api_base, CookieNames, is_development } from "$lib/configuration"; import { logError } from "$lib/logger"; import { error, redirect } from "@sveltejs/kit"; import type { LayoutServerLoad } from "./$types"; +import { request, Agent, Pool } from "undici"; export const load: LayoutServerLoad = async ({ routeId, cookies }) => { const isPublicRoute = routeId?.startsWith("(main)/(public)") ?? true; const sessionCookie = cookies.get(CookieNames.session); - const sessionIsValid = (await fetch(api_base("_/valid-session"), { - headers: { - Cookie: CookieNames.session + "=" + sessionCookie, - } - }).catch((e) => { - logError(e); - throw error(503, { - message: "We are experiencing a service distruption! Have patience while we resolve the issue." - }) - })).ok; + let sessionIsValid = false; + if (is_development()) { + sessionIsValid = (await request(api_base("_/valid-session"), { + throwOnError: false, + dispatcher: new Agent({ + factory: (origin, opts) => { + return new Pool(origin, opts); + } + }) + })).statusCode === 200; + } else { + sessionIsValid = (await fetch(api_base("_/valid-session"), { + headers: { + Cookie: CookieNames.session + "=" + sessionCookie, + } + }).catch((e) => { + logError(e); + throw error(503, { + message: "We are experiencing a service distruption! Have patience while we resolve the issue." + }) + })).ok; + } if (sessionIsValid && isPublicRoute) { throw redirect(302, "/home"); |
