Skip to content

Instantly share code, notes, and snippets.

@darrylmorley
Last active August 1, 2020 22:41
Show Gist options
  • Save darrylmorley/da579b6a73aa2f6ec8a84fe19c97f773 to your computer and use it in GitHub Desktop.
Save darrylmorley/da579b6a73aa2f6ec8a84fe19c97f773 to your computer and use it in GitHub Desktop.
Axios response interceptor for handling http 401 errors & dealing with token refresh. #javascript
axios.interceptors.response.use(function(response) {
return response;
}, async function(error) {
await new Promise(function(res) {
setTimeout(function() {res()}, 10000);
});
const originalRequest = error.config;
if (error.response.status===401 && !originalRequest._retry) {
originalRequest._retry = true;
const refreshedHeader = await setHeader()
console.log('New header: ', refreshedHeader)
axios.defaults.headers = refreshedHeader
originalRequest.headers = refreshedHeader
console.log('Original Request: ', originalRequest)
return axios(originalRequest);
}
return Promise.reject(error);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment