// Axios Interceptor Example
apiClient.interceptors.response.use(
(response) => response,
async (error) => {
const originalRequest = error.config;
if (error.response?.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
const refreshToken = await getStoredRefreshToken();
const res = await axios.post('/api/v2/auth/refresh', { refreshToken });
const newAccessToken = res.data.accessToken;
await storeAccessToken(newAccessToken);
originalRequest.headers['Authorization'] = `Bearer ${newAccessToken}`;
return apiClient(originalRequest);
}
return Promise.reject(error);
}
);