diff --git a/frontend/src/services/api.ts b/frontend/src/services/api.ts index f106d86..3c47c87 100644 --- a/frontend/src/services/api.ts +++ b/frontend/src/services/api.ts @@ -18,12 +18,14 @@ api.interceptors.request.use(config => { api.interceptors.response.use( response => response, async error => { - if (error.response?.status === 401) { + const originalRequest = error.config + if (error.response?.status === 401 && !originalRequest._retry && !originalRequest.url?.includes('/auth/refresh')) { + originalRequest._retry = true const authStore = useAuthStore() try { await authStore.refreshToken() - error.config.headers.Authorization = `Bearer ${authStore.token}` - return api(error.config) + originalRequest.headers.Authorization = `Bearer ${authStore.token}` + return api(originalRequest) } catch { authStore.logout() router.push('/login')