我正在使用http-auth-interceptor进行身份验证。在http-auth-interceptor中,我使用如下方式登录:
var data = 'username=' + encodeURIComponent(user.userId) + '&password=' + encodeURIComponent(user.password);
$http.post('api/authenticate', data, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
ignoreAuthModule: 'ignoreAuthModule'
})
ignoreAuthModule
用于告诉ignoreAuthModule
身份验证拦截器将忽略此登录方法。
现在,我对 $resource 有一些要求,例如:
.factory('SomeDataService', function ($resource) {
return $resource('api/some/data', {}, {
'get': { method: 'GET'}
});
})
I wantSomeDataService.get()
也被 auth 拦截器忽略,因为我需要自己控制 401 错误。
所以,我的问题是,有没有什么方法可以让我在 $http.xml 中设置类似的配置。
[根据评论更新] 我听了这个login-required
活动:
$rootScope.$on('event:auth-loginRequired', function (rejection) {
$log.log(rejection);
// I need to get the request url and for some specific url, need to do something.
$rootScope.loginPopup();
});
但是“拒绝”参数没有我需要的请求上下文数据。我需要获取请求 url 并检查,对于某些指定的 url,我需要做一些事情。