Skip to content

Instantly share code, notes, and snippets.

@shmidtelson
Created September 6, 2019 08:47
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save shmidtelson/74b1c1ccdf79f607ce1db177dfcafcd1 to your computer and use it in GitHub Desktop.
Save shmidtelson/74b1c1ccdf79f607ce1db177dfcafcd1 to your computer and use it in GitHub Desktop.
Update refresh token
createAxiosResponseInterceptor() {
const interceptor = axios.interceptors.response.use(
response => response,
error => {
// Reject promise if usual error
if (errorResponse.status !== 401) {
return Promise.reject(error);
}
/*
* When response code is 401, try to refresh the token.
* Eject the interceptor so it doesn't loop in case
* token refresh causes the 401 response
*/
axios.interceptors.response.eject(interceptor);
return axios.post('/api/refresh_token', {
'refresh_token': this._getToken('refresh_token')
}).then(response => {
saveToken();
error.response.config.headers['Authorization'] = 'Bearer ' + response.data.access_token;
return axios(error.response.config);
}).catch(error => {
destroyToken();
this.router.push('/login');
return Promise.reject(error);
}).finally(createAxiosResponseInterceptor);
}
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment