From 50d0b7b9b0b53769782ce93284ec21fe3572e5bf Mon Sep 17 00:00:00 2001 From: clkim Date: Thu, 29 Jan 2026 11:10:30 +0900 Subject: [PATCH] =?UTF-8?q?fix.=20=EC=96=B8=EC=96=B4=20=EC=97=86=EB=8A=94?= =?UTF-8?q?=20=EA=B2=BD=EC=9A=B0=20=EB=AC=B4=ED=95=9C=20=EB=A6=AC=EB=8B=A4?= =?UTF-8?q?=EC=9D=B4=EB=A0=89=ED=8A=B8=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layers/middleware/pageData.global.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/layers/middleware/pageData.global.ts b/layers/middleware/pageData.global.ts index a6e7662..06a685d 100644 --- a/layers/middleware/pageData.global.ts +++ b/layers/middleware/pageData.global.ts @@ -20,7 +20,7 @@ export default defineNuxtRouteMiddleware(async (to, _from) => { const pageDataStore = usePageDataStore() const loadingStore = useLoadingStore() - const { langCodes } = storeToRefs(gameDataStore) + const { langCodes, defaultLangCode } = storeToRefs(gameDataStore) const stoveApiBaseUrl = runtimeConfig.public.stoveApiUrl const accessToken = csrGetAccessToken() @@ -113,7 +113,19 @@ export default defineNuxtRouteMiddleware(async (to, _from) => { } // 91002 (Invalid LangCode): 미지원 언어로 접근 if (pageDataResponse?.code === 91002) { - return navigateTo(`/${langCode}/home`) + // 페이지별 지원 언어에 현재 langCode가 포함되지 않는 경우 + // 서비스 기본 언어(게임 기본 언어 또는 ko)로 한 번만 리다이렉트 + const fallbackLang = + defaultLangCode.value || + // defaultLangCode가 없으면 ko 우선, 없으면 첫 번째 언어, 그래도 없으면 ko + (langCodes.value?.includes('ko') ? 'ko' : langCodes.value?.[0] || 'ko') + + // 이미 fallback 언어로 접근 중이라면 더 이상 리다이렉트하지 않음 (무한 루프 방지) + if (langCode === fallbackLang) { + return + } + + return navigateTo(`/${fallbackLang}/home`) } // [TODO]