From 7267e319b4fc913e62e0b19378a1fed70cb6adca Mon Sep 17 00:00:00 2001 From: static Date: Sat, 28 Dec 2024 17:35:24 +0900 Subject: [PATCH] =?UTF-8?q?Access=20Token=20=EC=9C=A0=EB=AC=B4=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EC=9E=90=EB=8F=99=20=EB=A6=AC=EB=8B=A4?= =?UTF-8?q?=EC=9D=B4=EB=A0=89=ED=8A=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks.server.ts | 16 +++++++++++++++- .../(fullscreen)/auth/login/+page.server.ts | 13 +++++++++++++ src/routes/(fullscreen)/auth/login/+page.svelte | 10 ++++++++-- 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 src/routes/(fullscreen)/auth/login/+page.server.ts diff --git a/src/hooks.server.ts b/src/hooks.server.ts index c26afde..f9237c5 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,4 +1,4 @@ -import type { ServerInit } from "@sveltejs/kit"; +import { redirect, type ServerInit, type Handle } from "@sveltejs/kit"; import schedule from "node-schedule"; import { cleanupExpiredRefreshTokens } from "$lib/server/db/token"; @@ -7,3 +7,17 @@ export const init: ServerInit = () => { cleanupExpiredRefreshTokens(); }); }; + +export const handle: Handle = async ({ event, resolve }) => { + const path = event.url.pathname; + if (path.startsWith("/api") || path.startsWith("/auth")) { + return await resolve(event); + } + + const accessToken = event.cookies.get("accessToken"); + if (accessToken) { + return await resolve(event); + } else { + redirect(302, "/auth/login?redirect=" + encodeURIComponent(path)); + } +}; diff --git a/src/routes/(fullscreen)/auth/login/+page.server.ts b/src/routes/(fullscreen)/auth/login/+page.server.ts new file mode 100644 index 0000000..874e1be --- /dev/null +++ b/src/routes/(fullscreen)/auth/login/+page.server.ts @@ -0,0 +1,13 @@ +import { redirect } from "@sveltejs/kit"; +import type { PageServerLoad } from "./$types"; + +export const load: PageServerLoad = async ({ url, cookies }) => { + const redirectPath = url.searchParams.get("redirect") || "/"; + + const accessToken = cookies.get("accessToken"); + if (accessToken) { + redirect(302, redirectPath); + } + + return { redirectPath }; +}; diff --git a/src/routes/(fullscreen)/auth/login/+page.svelte b/src/routes/(fullscreen)/auth/login/+page.svelte index 0676741..5b13bab 100644 --- a/src/routes/(fullscreen)/auth/login/+page.svelte +++ b/src/routes/(fullscreen)/auth/login/+page.svelte @@ -1,9 +1,12 @@