Created
September 6, 2019 08:47
-
-
Save shmidtelson/74b1c1ccdf79f607ce1db177dfcafcd1 to your computer and use it in GitHub Desktop.
Update refresh token
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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