Есть авторизация по JWT. После того, как у токена заканчивается время жизни и посылается запрос на сервер за какими либо данными, сервер отдает в заголовке новый токен и его кладу в localstorage. Но запросы возвращаются с ошибкой 401.
Суть проблемы, как собрать эти запросы и отправить повторно с обновленным токеном?
Пример provider:
$httpProvider.interceptors.push(['$q', '$location', 'jwtHelper', 'authServices', '$injector',
function($q, $location, jwtHelper, authServices, $injector) {
return {
request: function(config) {
var token = localStorage.getItem('auth');
if(token) {
config.headers = config.headers || {};
config.headers.Authorization = 'Bearer ' + token;
}
return config;
},
requestError: function(rejection) {
return $q.reject(rejection);
},
response: function(response) {
var storedToken = localStorage.getItem('auth'),
receivedToken = response.headers('Authorization');
if(receivedToken && storedToken !== receivedToken) {
localStorage.setItem('auth', receivedToken);
};
return response;
},
responseError: function(rejection) {
switch (rejection.status) {
case 401:
receivedToken = rejection.headers('Authorization');
if (receivedToken) {
localStorage.setItem('auth', receivedToken);
};
console.log(receivedToken);
break;
case 403:
break;
}
return $q.reject(rejection);
}
};
}]);