From 3b2ed4ddead98361f74916da97b7fb6c76970369 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Sat, 2 Nov 2024 00:53:16 -0700 Subject: [PATCH] routing improvements --- src/hooks.server.ts | 17 +++++++++++++++-- src/routes/user/+page.server.ts | 14 -------------- 2 files changed, 15 insertions(+), 16 deletions(-) delete mode 100644 src/routes/user/+page.server.ts diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 1a6c344..c04ae53 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,6 +1,7 @@ -import type { Handle } from '@sveltejs/kit'; +import { type Handle, redirect } from '@sveltejs/kit'; import { dev } from '$app/environment'; import * as auth from '$lib/server/auth'; +import { sequence } from '@sveltejs/kit/hooks'; const handleAuth: Handle = async ({ event, resolve }) => { const sessionId = event.cookies.get(auth.sessionCookieName); @@ -29,4 +30,16 @@ const handleAuth: Handle = async ({ event, resolve }) => { return resolve(event); }; -export const handle: Handle = handleAuth; + +const authRequired = new Set([ + '/user', + '/connections', +]); +const handleProtectedPaths: Handle = ({ event, resolve }) => { + if (authRequired.has(event.url.pathname) && !event.locals.user) { + return redirect(302, '/'); + } + return resolve(event); +} + +export const handle: Handle = sequence(handleAuth, handleProtectedPaths); diff --git a/src/routes/user/+page.server.ts b/src/routes/user/+page.server.ts deleted file mode 100644 index 57600bc..0000000 --- a/src/routes/user/+page.server.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { redirect } from "@sveltejs/kit"; - -import type { PageServerLoad } from "./$types"; - -export const load: PageServerLoad = async (event) => { - const { user } = event.locals; - if (!user) { - return redirect(302, "/"); - } - - return { - user - }; -};