diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-10-01 10:45:48 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-10-01 10:45:48 +0200 |
| commit | 1a99cce7ab528d5d67e5b419630abe2d52f5d33a (patch) | |
| tree | af1afec02a2aacf7cc97b144bd009b25335195e4 | |
| parent | 7a5ba5ea4aec0704070cfe8d63ba504a07d88cc6 (diff) | |
| download | greatoffice-1a99cce7ab528d5d67e5b419630abe2d52f5d33a.tar.xz greatoffice-1a99cce7ab528d5d67e5b419630abe2d52f5d33a.zip | |
feat: !WIP Use https when consuming dev api
This is needed for go_session to be set, afaik.
And it requires us to ignore self-signed check on undici when in development.
| -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"); |
