From 2edcf5d8b977f18fbc42e5188121c9f7b0a8b0fd Mon Sep 17 00:00:00 2001 From: PMtHk Date: Tue, 26 Nov 2024 02:24:56 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=86=A0=ED=81=B0=20=EB=AC=B4=ED=95=9C?= =?UTF-8?q?=20=EB=A6=AC=ED=94=84=EB=A0=88=EC=89=AC=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/lib/axios.ts | 15 ++------------- apps/client/src/routes/__root.tsx | 4 ++-- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/apps/client/src/lib/axios.ts b/apps/client/src/lib/axios.ts index e3cb503..2930db1 100644 --- a/apps/client/src/lib/axios.ts +++ b/apps/client/src/lib/axios.ts @@ -33,25 +33,14 @@ axiosInstance.interceptors.request.use( } ); -const REFRESH_MAX_RETRY_COUNT = 3; - /* eslint no-underscore-dangle: 0 */ axiosInstance.interceptors.response.use( (response) => Promise.resolve(response), async (error) => { - if (error.response?.status !== 401) { + if (error.response?.status !== 401 || error.config.url === '/auth/refresh') { return Promise.reject(error); } - const originalReq = error.config; - - if (originalReq._retry >= REFRESH_MAX_RETRY_COUNT) { - localStorage.removeItem(AUTH_STORAGE_KEY); - return Promise.reject(error); - } - - originalReq._retry = (originalReq._retry || 0) + 1; - try { const response = await axiosInstance.post('/auth/refresh'); if (response.status !== 200) { @@ -63,7 +52,7 @@ axiosInstance.interceptors.response.use( localStorage.setItem(AUTH_STORAGE_KEY, JSON.stringify(authStorage)); - const newConfig = { ...originalReq }; + const newConfig = { ...error.config }; newConfig.headers.Authorization = `Bearer ${accessToken}`; return axiosInstance(newConfig); diff --git a/apps/client/src/routes/__root.tsx b/apps/client/src/routes/__root.tsx index e776309..3a1402c 100644 --- a/apps/client/src/routes/__root.tsx +++ b/apps/client/src/routes/__root.tsx @@ -1,9 +1,9 @@ import { createRootRouteWithContext, Outlet } from '@tanstack/react-router'; import { QueryClient } from '@tanstack/react-query'; -import { AuthContext } from '@/contexts/authContext'; +import { AuthContextValue } from '@/features/auth/AuthProvider.tsx'; interface RouterContext { - auth: AuthContext; + auth: AuthContextValue; queryClient: QueryClient; }