我有问题要用AngularJS覆盖标头令牌,因为已经用AuthInterceptor
设置了。
app.factory('authInterceptor', function ($rootScope, $q, $window) {
return {
request: function (config) {
config.headers = config.headers || {};
if (localStorage.getItem("token")!=='') {
config.headers.Authorization = 'Bearer ' + localStorage.getItem("token");
}
return config;
},
};
});
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('authInterceptor');
});
我会在使用另一个令牌的情况下访问另一个第三方URL,但是总是失败,因为令牌返回到localStorage
中的当前令牌。我已经使用过TransformRequest
,但也没有用,什么是解决问题的最佳实践?
答案 0 :(得分:0)
您可以检查拦截的请求中的URL是否是您要传递授权令牌的URL。例如,如果您自己的API的URL始终以https://api.myapp.com
开头,则可以这样操作:
app.factory('authInterceptor', function ($rootScope, $q, $window) {
var urlForAuthorization = 'https://api.myapp.com';
return {
request: function (config) {
config.headers = config.headers || {};
if (config.url.startsWith(urlForAuthorization)
&& localStorage.getItem("token") !== '') {
config.headers.Authorization = 'Bearer ' + localStorage.getItem("token");
}
return config;
}
};
});