From 806fb925f0c0962b8e145d83c583a24d0f534529 Mon Sep 17 00:00:00 2001 From: Zias van Nes Date: Sat, 27 Sep 2025 13:59:37 +0200 Subject: [PATCH] feat:move auth demo to main --- src/routes/+page.server.ts | 12 +++++++ src/routes/+page.svelte | 16 ++++++++-- src/routes/demo/+page.svelte | 1 - src/routes/demo/lucia/+page.server.ts | 31 ------------------- src/routes/demo/lucia/+page.svelte | 12 ------- .../{demo/lucia => }/login/+page.server.ts | 6 ++-- .../{demo/lucia => }/login/+page.svelte | 0 src/routes/logout/+page.server.ts | 15 +++++++++ 8 files changed, 44 insertions(+), 49 deletions(-) create mode 100644 src/routes/+page.server.ts delete mode 100644 src/routes/demo/+page.svelte delete mode 100644 src/routes/demo/lucia/+page.server.ts delete mode 100644 src/routes/demo/lucia/+page.svelte rename src/routes/{demo/lucia => }/login/+page.server.ts (96%) rename src/routes/{demo/lucia => }/login/+page.svelte (100%) create mode 100644 src/routes/logout/+page.server.ts diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts new file mode 100644 index 0000000..a76165f --- /dev/null +++ b/src/routes/+page.server.ts @@ -0,0 +1,12 @@ +import { redirect } from '@sveltejs/kit'; +import type { PageServerLoad } from './$types'; + +export const load: PageServerLoad = async (event) => { + if (!event.locals.user) { + return redirect(302, '/login'); + } + + return { + user: event.locals.user + }; +}; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index cc88df0..d590632 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,2 +1,14 @@ -

Welcome to SvelteKit

-

Visit svelte.dev/docs/kit to read the documentation

+ + +

Welcome to Serengo

+

Hi, {data.user.username}!

+

Your user ID is {data.user.id}.

+ +
+ +
diff --git a/src/routes/demo/+page.svelte b/src/routes/demo/+page.svelte deleted file mode 100644 index e291ab8..0000000 --- a/src/routes/demo/+page.svelte +++ /dev/null @@ -1 +0,0 @@ -lucia diff --git a/src/routes/demo/lucia/+page.server.ts b/src/routes/demo/lucia/+page.server.ts deleted file mode 100644 index 9fe83e5..0000000 --- a/src/routes/demo/lucia/+page.server.ts +++ /dev/null @@ -1,31 +0,0 @@ -import * as auth from '$lib/server/auth'; -import { fail, redirect } from '@sveltejs/kit'; -import { getRequestEvent } from '$app/server'; -import type { Actions, PageServerLoad } from './$types'; - -export const load: PageServerLoad = async () => { - const user = requireLogin(); - return { user }; -}; - -export const actions: Actions = { - logout: async (event) => { - if (!event.locals.session) { - return fail(401); - } - await auth.invalidateSession(event.locals.session.id); - auth.deleteSessionTokenCookie(event); - - return redirect(302, '/demo/lucia/login'); - } -}; - -function requireLogin() { - const { locals } = getRequestEvent(); - - if (!locals.user) { - return redirect(302, '/demo/lucia/login'); - } - - return locals.user; -} diff --git a/src/routes/demo/lucia/+page.svelte b/src/routes/demo/lucia/+page.svelte deleted file mode 100644 index cefb2d1..0000000 --- a/src/routes/demo/lucia/+page.svelte +++ /dev/null @@ -1,12 +0,0 @@ - - -

Hi, {data.user.username}!

-

Your user ID is {data.user.id}.

-
- -
diff --git a/src/routes/demo/lucia/login/+page.server.ts b/src/routes/login/+page.server.ts similarity index 96% rename from src/routes/demo/lucia/login/+page.server.ts rename to src/routes/login/+page.server.ts index 97d1235..3b52489 100644 --- a/src/routes/demo/lucia/login/+page.server.ts +++ b/src/routes/login/+page.server.ts @@ -9,7 +9,7 @@ import type { Actions, PageServerLoad } from './$types'; export const load: PageServerLoad = async (event) => { if (event.locals.user) { - return redirect(302, '/demo/lucia'); + return redirect(302, '/'); } return {}; }; @@ -50,7 +50,7 @@ export const actions: Actions = { const session = await auth.createSession(sessionToken, existingUser.id); auth.setSessionTokenCookie(event, sessionToken, session.expiresAt); - return redirect(302, '/demo/lucia'); + return redirect(302, '/'); }, register: async (event) => { const formData = await event.request.formData(); @@ -82,7 +82,7 @@ export const actions: Actions = { } catch { return fail(500, { message: 'An error has occurred' }); } - return redirect(302, '/demo/lucia'); + return redirect(302, '/'); } }; diff --git a/src/routes/demo/lucia/login/+page.svelte b/src/routes/login/+page.svelte similarity index 100% rename from src/routes/demo/lucia/login/+page.svelte rename to src/routes/login/+page.svelte diff --git a/src/routes/logout/+page.server.ts b/src/routes/logout/+page.server.ts new file mode 100644 index 0000000..7f74a79 --- /dev/null +++ b/src/routes/logout/+page.server.ts @@ -0,0 +1,15 @@ +import * as auth from '$lib/server/auth'; +import { fail, redirect } from '@sveltejs/kit'; +import type { Actions } from './$types'; + +export const actions: Actions = { + default: async (event) => { + if (!event.locals.session) { + return fail(401); + } + await auth.invalidateSession(event.locals.session.id); + auth.deleteSessionTokenCookie(event); + + return redirect(302, '/login'); + } +};