我在JWT Auth中使用AngularJs。我已经做了一个api并对它进行了测试。
对于每个请求,api都期望得到一个令牌,对于每个响应,它都会返回一个令牌对象。但当我这样做的时候:
employeeAppModule.config([
'$httpProvider',
function ($httpProvider) {
$httpProvider.interceptors.push(function () {
var token, headers, $cookies;
//inject cookies
angular.injector(['ngCookies']).invoke(['$cookies', function(_$cookies_) {
$cookies = _$cookies_;
}]);
return {
request: function (request) {
token = $cookies.get('jwt-token');
headers = request.headers || (request.headers = {});
if(token != null && token != 'undefined') {
headers.Authorization = token;
}
return request;
},
response: function (response) {
if (typeof response.data.result === 'undefined') {
return response;
}
if(response.status && response.status.code === 401) {
alert('token wordt verwijderd');
}
if(response.data && response.data.result.token && response.data.result.token.length > 10) {
$cookies.put('jwt-token', 'Bearer ' + response.data.result.token);
}
return response;
}
};
});
}]);这不管用。如果我在请求/响应之间放置几个警告框,它就可以工作了。我怎么才能解决这个问题?
发布于 2016-05-17 11:40:03
在Authorization变量上设置headers属性,然后返回request。
request.headers = headers;
return request;这应该能解决这个问题。
不过,有几件事:
Bearer放入cookie本身,只需将其添加到每个请求的标题中,这样就更优雅了。https://stackoverflow.com/questions/37274913
复制相似问题