Skip to content

Instantly share code, notes, and snippets.

@sohseyedi-web
Last active February 27, 2025 17:58
Show Gist options
  • Select an option

  • Save sohseyedi-web/aea884d054c09ec9b1fe67be52980fee to your computer and use it in GitHub Desktop.

Select an option

Save sohseyedi-web/aea884d054c09ec9b1fe67be52980fee to your computer and use it in GitHub Desktop.
Axios Interceptor (RefreshToken - AccessToken)
import axios from "axios";
const BASE_URL = process.env.API_URL;
const app = axios.create({
baseURL: BASE_URL,
withCredentials: true,
});
app.interceptors.request.use(
(res) => res,
(err) => Promise.reject(err)
);
app.interceptors.response.use(
(res) => res,
async (err) => {
const originalConfig = err.config;
if (err.response.status === 401 && !originalConfig._retry) {
originalConfig._retry = true;
try {
const { data } = await axios.get(`${BASE_URL}/refresh-token`, {
withCredentials: true,
});
if (data) return app(originalConfig);
} catch (error) {
return Promise.reject(error);
}
}
return Promise.reject(err);
}
);
const api = {
get: app.get,
post: app.post,
delete: app.delete,
put: app.put,
patch: app.patch,
};
export default api;
// const {data} = await api.get("/")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment