I\'m working on a react application that consists of many API requests. The structure of the application is
When logging in, I\'m receiving a token on response and I
Put this code in your project initialize or loading section, and run it once
then every time you call axios this code will check errors
Change your variable here and use it
// Add a request interceptor
axios.interceptors.request.use((config) => {
let token = localStorage.getItem("token");
if (token) {
config.headers.credentials = 'include';
config.headers.Authorization = `Bearer ${token}`;
config.headers['Access-Control-Allow-Origin'] = '*';
config.headers['Content-Type'] = 'application/json';
}
return config;
}, (error) => {
alert('interceptor request has error');
return Promise.reject(error);
});
// Add a response interceptor
axios.interceptors.response.use((response) => {
return response;
}, (error) => {
if (error.response && error.response.data && error.response.data.error &&
(error.response.data.session === false || error.response.data.session === "false")) {
localStorage.removeItem("userId"); // <-- add your var
window.location = "/"; // <-- add your path
}
else if (error.response && error.response.data && error.response.data.error && error.response.data.error.message) {
toastMessage(error.response.data.error.message, 1);
}
else
if (error.response && error.response.status === 401) {
localStorage.removeItem("userId"); // <-- add your var
window.location = "/"; // <-- add your path
} else
return Promise.reject(error);
});