From 6422b3013af4db8a9faa2f59cc54afd3212b1263 Mon Sep 17 00:00:00 2001 From: bicochan Date: Thu, 9 Apr 2026 15:06:25 +0900 Subject: [PATCH] =?UTF-8?q?[cs]=20feat:=20=EB=A1=9C=EA=B7=B8=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EC=8B=9C=20=EC=BF=A0=ED=82=A4=20=EC=A0=9C=EA=B1=B0?= =?UTF-8?q?=20=EB=B0=A9=EC=8B=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/cs/app/api/auth/logout/route.ts | 14 ++++++++++---- packages/common/auth/token-manager.ts | 9 ++++----- packages/common/components/src/ui/header/index.tsx | 11 ++++++----- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/apps/cs/app/api/auth/logout/route.ts b/apps/cs/app/api/auth/logout/route.ts index fdcc9df7c..9ec9605ce 100644 --- a/apps/cs/app/api/auth/logout/route.ts +++ b/apps/cs/app/api/auth/logout/route.ts @@ -4,14 +4,20 @@ import { ACCESS_TOKEN, AUTH_USER_ID, CLAIM_NAME, + COOKIE_DOMAIN, REFRESH_TOKEN, } from "@/shared/config"; +const cookieOptions = { + path: "/", + domain: COOKIE_DOMAIN, +}; + export async function POST() { const cookieStore = await cookies(); - cookieStore.delete(ACCESS_TOKEN); - cookieStore.delete(REFRESH_TOKEN); - cookieStore.delete(AUTH_USER_ID); - cookieStore.delete(CLAIM_NAME); + cookieStore.delete({ name: ACCESS_TOKEN, ...cookieOptions }); + cookieStore.delete({ name: REFRESH_TOKEN, ...cookieOptions }); + cookieStore.delete({ name: AUTH_USER_ID, ...cookieOptions }); + cookieStore.delete({ name: CLAIM_NAME, ...cookieOptions }); return NextResponse.json({ message: "Logged out" }, { status: 200 }); } diff --git a/packages/common/auth/token-manager.ts b/packages/common/auth/token-manager.ts index ff516aa16..1ee5bad68 100644 --- a/packages/common/auth/token-manager.ts +++ b/packages/common/auth/token-manager.ts @@ -9,10 +9,7 @@ export function createTokenManager(config: AuthConfig) { if (config.cookieDomain) return config.cookieDomain; - const { hostname } = window.location; - if (hostname === "localhost" || hostname === "127.0.0.1") return undefined; - - return hostname; + return undefined; }; return { @@ -65,7 +62,9 @@ export function createTokenManager(config: AuthConfig) { }, getRefreshToken(): string | undefined { - return config.refreshToken ? this.getToken(config.refreshToken) : undefined; + return config.refreshToken + ? this.getToken(config.refreshToken) + : undefined; }, getUserId(): string | undefined { diff --git a/packages/common/components/src/ui/header/index.tsx b/packages/common/components/src/ui/header/index.tsx index 69e2a7196..49c080e5c 100644 --- a/packages/common/components/src/ui/header/index.tsx +++ b/packages/common/components/src/ui/header/index.tsx @@ -82,13 +82,13 @@ export function Header({ viewOnly }: { viewOnly?: boolean }) { // 에러가 나도 계속 진행 } finally { // 2. 클라이언트 쿠키 삭제 (백업) - clearClientCookies(); + // clearClientCookies(); // 3. 로컬/세션 스토리지 정리 - if (typeof window !== "undefined") { - localStorage.clear(); - sessionStorage.clear(); - } + // if (typeof window !== "undefined") { + // localStorage.clear(); + // sessionStorage.clear(); + // } // 4. 로그인 페이지로 리다이렉트 window.location.href = "/auth/login"; @@ -96,6 +96,7 @@ export function Header({ viewOnly }: { viewOnly?: boolean }) { }; // 쿠키 삭제 헬퍼 함수 + // eslint-disable-next-line @typescript-eslint/no-unused-vars const clearClientCookies = () => { const actualHost = window.location.hostname;