gpt4 book ai didi

javascript - AngularJs 和 token

转载 作者:行者123 更新时间:2023-11-30 00:09:04 24 4
gpt4 key购买 nike

我将 AngularJs 与 JWT Auth 结合使用。我已经制作了一个 api 并且我已经测试了它。

对于每个请求,api 都需要一个 token ,并且对于每个响应,它都会返回一个 token 对象。但是当我这样尝试时:

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;
}
};
});
}]);

它不起作用。如果我在请求/响应之间放置几个警告框,它就可以正常工作。我该如何解决这个问题?

最佳答案

您在 headers 变量上设置 Authorization 属性,然后返回 request

request.headers = headers;
return request;

这应该可以解决问题。

不过有几点:

  • 不要将 Bearer 放在 cookie 本身中,只需在每次请求时将其添加到您的 header 中,这样更优雅。
  • 我不确定它是否有意为之,但您真的不应该在每个请求上都返回 token 对象。如果这是预期的行为,那是我的错!

关于javascript - AngularJs 和 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com