From 36b43931348f701b509def4feae317a73741916d Mon Sep 17 00:00:00 2001 From: bicochan Date: Thu, 9 Apr 2026 14:04:09 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[cs]=20chore:=20COOKIE=5FDOMAIN=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=EA=B0=92=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/cs/src/shared/config/env.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/cs/src/shared/config/env.ts b/apps/cs/src/shared/config/env.ts index 5e1392b4d..38f288fcf 100644 --- a/apps/cs/src/shared/config/env.ts +++ b/apps/cs/src/shared/config/env.ts @@ -11,4 +11,5 @@ export const ACCESS_TOKEN = export const REFRESH_TOKEN = process.env.NEXT_PUBLIC_REFRESH_TOKEN || "refresh-token"; export const AUTH_USER_ID = process.env.NEXT_PUBLIC_AUTH_USER_ID || "token-id"; -export const COOKIE_DOMAIN = process.env.NEXT_PUBLIC_COOKIE_DOMAIN; +export const COOKIE_DOMAIN = + process.env.NEXT_PUBLIC_COOKIE_DOMAIN || "dev.onasys.co.kr"; From 7bf86e8619f89263852fb3700a55e66d40f2b745 Mon Sep 17 00:00:00 2001 From: bicochan Date: Thu, 9 Apr 2026 14:28:52 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Revert=20"[cs]=20chore:=20COOKIE=5FDOMAIN?= =?UTF-8?q?=20=EA=B8=B0=EB=B3=B8=EA=B0=92=20=EC=84=A4=EC=A0=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 36b43931348f701b509def4feae317a73741916d. --- apps/cs/src/shared/config/env.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/cs/src/shared/config/env.ts b/apps/cs/src/shared/config/env.ts index 38f288fcf..5e1392b4d 100644 --- a/apps/cs/src/shared/config/env.ts +++ b/apps/cs/src/shared/config/env.ts @@ -11,5 +11,4 @@ export const ACCESS_TOKEN = export const REFRESH_TOKEN = process.env.NEXT_PUBLIC_REFRESH_TOKEN || "refresh-token"; export const AUTH_USER_ID = process.env.NEXT_PUBLIC_AUTH_USER_ID || "token-id"; -export const COOKIE_DOMAIN = - process.env.NEXT_PUBLIC_COOKIE_DOMAIN || "dev.onasys.co.kr"; +export const COOKIE_DOMAIN = process.env.NEXT_PUBLIC_COOKIE_DOMAIN; From 6422b3013af4db8a9faa2f59cc54afd3212b1263 Mon Sep 17 00:00:00 2001 From: bicochan Date: Thu, 9 Apr 2026 15:06:25 +0900 Subject: [PATCH 3/3] =?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;