From 9259cdd84cf133d943e405f45f0459c98102e8f7 Mon Sep 17 00:00:00 2001 From: "Mohamad.Elsena" Date: Thu, 2 Jan 2025 14:34:55 +0100 Subject: [PATCH] init - basic toke-based auth --- frontend/src/app.css | 0 frontend/src/routes/(auth)/+layout.ts | 8 ++++ frontend/src/routes/+layout.svelte | 7 ++++ frontend/src/routes/+layout.ts | 1 + frontend/src/routes/+page.ts | 7 ++++ frontend/src/routes/login/+page.svelte | 51 ++++++++++++++++++++++++++ frontend/src/routes/login/+page.ts | 8 ++++ 7 files changed, 82 insertions(+) create mode 100644 frontend/src/app.css create mode 100644 frontend/src/routes/(auth)/+layout.ts create mode 100644 frontend/src/routes/+layout.svelte create mode 100644 frontend/src/routes/+layout.ts create mode 100644 frontend/src/routes/+page.ts create mode 100644 frontend/src/routes/login/+page.svelte create mode 100644 frontend/src/routes/login/+page.ts diff --git a/frontend/src/app.css b/frontend/src/app.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/routes/(auth)/+layout.ts b/frontend/src/routes/(auth)/+layout.ts new file mode 100644 index 0000000..fe1e106 --- /dev/null +++ b/frontend/src/routes/(auth)/+layout.ts @@ -0,0 +1,8 @@ +import { loggedIn } from '$lib/api'; +import { redirect } from '@sveltejs/kit'; + +export async function load() { + if (!loggedIn()) { + redirect(307, '/login'); + } +} diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte new file mode 100644 index 0000000..b93e9ba --- /dev/null +++ b/frontend/src/routes/+layout.svelte @@ -0,0 +1,7 @@ + + +{@render children()} diff --git a/frontend/src/routes/+layout.ts b/frontend/src/routes/+layout.ts new file mode 100644 index 0000000..a3d1578 --- /dev/null +++ b/frontend/src/routes/+layout.ts @@ -0,0 +1 @@ +export const ssr = false; diff --git a/frontend/src/routes/+page.ts b/frontend/src/routes/+page.ts new file mode 100644 index 0000000..471709e --- /dev/null +++ b/frontend/src/routes/+page.ts @@ -0,0 +1,7 @@ +import { loggedIn } from '$lib/api'; +import { redirect } from '@sveltejs/kit'; + +export async function load() { + const page = loggedIn() ? '/main' : '/login'; + redirect(307, page); +} diff --git a/frontend/src/routes/login/+page.svelte b/frontend/src/routes/login/+page.svelte new file mode 100644 index 0000000..b69d326 --- /dev/null +++ b/frontend/src/routes/login/+page.svelte @@ -0,0 +1,51 @@ + + +
+

Login

+ +
+ + +
+ +
+ + +
+ + {#if errorMessage} +
{errorMessage}
+ {/if} + + +
diff --git a/frontend/src/routes/login/+page.ts b/frontend/src/routes/login/+page.ts new file mode 100644 index 0000000..22f14b6 --- /dev/null +++ b/frontend/src/routes/login/+page.ts @@ -0,0 +1,8 @@ +import { loggedIn } from '$lib/api'; +import { redirect } from '@sveltejs/kit'; + +export async function load() { + if (loggedIn()) { + redirect(307, '/'); + } +}