场景很简单:
在进行任何ajax调用之前,我需要检查refresh_token
是否已过期。如果有,我发送一个新请求来刷新它。操作完成后,我允许原始请求被执行。
但问题是,如果我想发送额外的ajax请求,我会冻结我的应用程序。为什么?我现在可以在这里使用任何其他服务吗?
app.config(function ($httpProvider) {
$httpProvider.interceptors.push(function ($timeout, $q, $injector, $rootScope) {
var AUTHService;
$timeout(function () {
AUTHService = $injector.get('AUTHService');
});
return {
request: function(config) {
if (AUTHService) {
if (AUTHService.checkTokenExpired()) {
$q.all([AUTHService.RefreshToken()]);
return config;
} else {
return config;
}
} else {
return config;
}
}
};
});
});