Skip to content

Instantly share code, notes, and snippets.

@monkov
Created December 12, 2019 01:14
Show Gist options
  • Save monkov/ad25b0e9c29657267a092d77881073a8 to your computer and use it in GitHub Desktop.
Save monkov/ad25b0e9c29657267a092d77881073a8 to your computer and use it in GitHub Desktop.
axios.interceptors.response.use(response => {
return response;
}, err => {
return new Promise((resolve, reject) => {
const originalReq = err.config;
if ( err.response.status === 401 && err.config && !err.config.__isRetryRequest )
{
originalReq._retry = true;
let res = fetch('http://localhost:8080/api/v1/auth/refresh', {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin',
headers: {
'Content-Type': 'application/json',
'Device': 'device',
'Token': localStorage.getItem("token")
},
redirect: 'follow',
referrer: 'no-referrer',
body: JSON.stringify({
token: localStorage.getItem("token"),
refresh_token: localStorage.getItem("refresh_token")
}),
}).then(res => res.json()).then(res => {
console.log(res);
this.setSession({token: res.token, refresh_token: res.refresh});
originalReq.headers['Token'] = res.token;
originalReq.headers['Device'] = "device";
return axios(originalReq);
});
resolve(res);
}
return Promise.reject(err);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment