AngularJS:使用拦截器更新令牌(使用service)
AngularJS: renew token with interceptor (using service)
我有这样的拦截器代码:
var responseError = function(rejection) {
if (rejection.status === 401 || rejection.status === 403) {
authService.renewToken($localStorage.refreshToken).then(function () {
});
}
}
,当然,在这段代码的开头,我包括了authService "injector",比如
['$q', '$injector', '$location', '$localStorage', '$rootScope', '$window', 'authService',
function($q, $injector, $location, $localStorage, $rootScope, $window, authService) {...
和在服务中我有这样的代码:
var renewToken = function(token) {
var data = /**/
var deferred = $q.defer();
$http.post('token', data, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.success(function(response) {
deferred.resolve(response);
}).error(function (err) {
deferred.reject(err);
});
return deferred.promise;
};
但是在这段代码中,我得到:
Uncaught Error: [$injector:cdep] Circular dependency found: $http <- authService <- authInterceptorService <- $http <- $templateRequest <- $route
我怎么能更新我的令牌,当我在拦截器中得到异常?
在拦截器中你不必包括authService
,只注入$injector
你的responseError函数应该像这样:
var responseError = function(rejection) {
if (rejection.status === 401 || rejection.status === 403) {
var authService = $injector.get('authService');
authService.renewToken($localStorage.refreshToken).then(function () {
});
}
}
相关文章:
- 使用Javascript获取Twitter访问令牌
- 如何使用Google撤销Oauth令牌'的Javascript API
- 如何安全地获取&使用Facebook应用程序访问令牌发送通知使用PHP&Javascript
- 使用Soundcloud API中的令牌保持登录状态
- 使用Javascript向ID数组发送通知时出现Facebook访问令牌错误
- 使用用户名/API令牌javascript的Jenkins POST请求
- 如何使用密码和用户名从 bitly 获取访问令牌
- 如何使用python后端和web前端提供braintree客户端令牌
- 如何在核心php应用程序中使用节点js json Web令牌库
- 如何使用Redux刷新JWT令牌
- "缺少认证令牌”;当使用AWS apigclient(带凭据)时
- 如何使用访问令牌与Facebook Graph API
- 打开图形:Java脚本:必须使用活动访问令牌来查询有关当前用户的信息
- 未捕获的语法错误:使用 iFrame 时出现意外的令牌 }
- 在事件上使用 jquery 时出现意外令牌
- 使用变量初始化数组:意外的令牌 +
- 未捕获的语法错误:意外的令牌?使用Zepto
- BOX API V2的授权令牌使用Netsuite的计划脚本获得
- asp.net表单认证令牌使用纯javascript
- AngularJS:使用拦截器更新令牌(使用service)