diff --git a/svelte-kit-scss/src/hooks.server.ts b/svelte-kit-scss/src/hooks.server.ts index 514c06bf5..cc615ff40 100644 --- a/svelte-kit-scss/src/hooks.server.ts +++ b/svelte-kit-scss/src/hooks.server.ts @@ -4,22 +4,6 @@ import { HEADER_NAMES } from '$lib/constants/headers'; import type { Handle, HandleFetch } from '@sveltejs/kit'; export const handle: Handle = async ({ event, resolve }) => { - const accessTokenFromCookies = event.cookies.get(AUTH_COOKIE_NAME); - - event.locals.accessToken = accessTokenFromCookies; - - if (!accessTokenFromCookies) { - if (!event.url.pathname.startsWith('/signin')) { - return Response.redirect(`${event.url.origin}/signin`, 301); - } - } - - if (event.url.pathname.startsWith('/signin')) { - if (accessTokenFromCookies) { - return Response.redirect(`${event.url.origin}`); - } - } - // erase token cookie if (event.url.pathname === '/logout') { event.cookies.set(AUTH_COOKIE_NAME, String(), AUTH_COOKIE_ERASE_OPTIONS); diff --git a/svelte-kit-scss/src/routes/(authenticated)/+layout.server.ts b/svelte-kit-scss/src/routes/(authenticated)/+layout.server.ts index 9d7f4d07b..2db89940c 100644 --- a/svelte-kit-scss/src/routes/(authenticated)/+layout.server.ts +++ b/svelte-kit-scss/src/routes/(authenticated)/+layout.server.ts @@ -1,9 +1,16 @@ import type { LayoutServerLoad } from './$types'; import { UserService } from '$lib/services'; +import { AUTH_COOKIE_NAME } from '$lib/constants/auth'; +import { redirect } from '@sveltejs/kit'; -export const load: LayoutServerLoad = async ({ locals, fetch }) => { - const userService = new UserService(fetch); - const authenticatedUser = await userService.getAuthenticatedUser(); - locals.user = authenticatedUser; - return authenticatedUser; +export const load: LayoutServerLoad = async ({ locals, fetch, cookies }) => { + const token = cookies.get(AUTH_COOKIE_NAME); + if (token) { + const userService = new UserService(fetch); + const authenticatedUser = await userService.getAuthenticatedUser(); + locals.user = authenticatedUser; + return authenticatedUser; + } else { + throw redirect(303, '/signin'); + } }; diff --git a/svelte-kit-scss/src/routes/signin/(auth)/+page.server.ts b/svelte-kit-scss/src/routes/signin/(auth)/+page.server.ts new file mode 100644 index 000000000..cc9ba24ef --- /dev/null +++ b/svelte-kit-scss/src/routes/signin/(auth)/+page.server.ts @@ -0,0 +1,10 @@ +import type { LayoutServerLoad } from '../../$types'; +import { AUTH_COOKIE_NAME } from '$lib/constants/auth'; +import { redirect } from '@sveltejs/kit'; + +export const load: LayoutServerLoad = async ({ cookies }) => { + const token = cookies.get(AUTH_COOKIE_NAME); + if (token) { + throw redirect(303, '/'); + } +};