【问题标题】:Bearer token doesn't get updated in request (Chrome)不记名令牌未在请求中更新(Chrome)
【发布时间】:2017-03-27 20:25:27
【问题描述】:

我正在使用 AngularJS (1.6.1) 并创建了一个 AuthorizationInterceptor。

当我将 local_storage 中的 access_token 添加到“授权”标头时,它不会在 Chrome 中更新。 Chrome 似乎“缓存”了请求

本地存储中的令牌发生变化,但当 Chrome 执行实际请求时,它始终使用相同的令牌(使用开发工具、邮递员和 Fiddler 进行检查...)

this.request = function (request) {
   request.headers = request.headers || {};
   if (window.localStorage.getItem('access_token') !== '') {
        alert("Adding header in request \n \n" + window.localStorage.getItem('access_token'));
        request.headers.Authorization = 'Bearer ' + window.localStorage.getItem('access_token');
   }
   return request;
};

我尝试了以下方法:

this.request = function (request) {
   request.headers = request.headers || {};
   if (window.localStorage.getItem('access_token') !== '') {
        //alert("Adding header in request \n \n" + window.localStorage.getItem('access_token'));
        request.headers.TEST= 'Bearer ' + window.localStorage.getItem('access_token');
   }
   return request;
};

现在我不再设置 Authorization 标头,而是设置“TEST”标头。

测试标头现在具有正确的“access_token”但仍有“授权”标头?我不知道它是从哪里来的。没有编程添加标题。

我也不知道 Chrome 从哪里得到这个访问令牌。这是昨天之一。它也不在请求对象中...... 此外,在使用 Chrome 设置删除所有保存的域信息后,Chrome 仍然设法使用旧令牌。

如果我重新安装 Chrome,错误就解决了。直到再次发生…… Firefox、Edge 和 Internet Explorer 中不存在该错误

有人遇到过类似的错误吗?
我越来越绝望了

真诚地, 布莱希特

【问题讨论】:

  • 我在 angular 和 chrome 上有同样的问题 :(

标签: angularjs google-chrome authorization jwt bearer-token


【解决方案1】:

看来我通过使用工厂而不是拦截器的服务解决了这个问题。

编辑:问题消失了 5 个月,5 个月后它突然又停止工作了。相同的行为:更正本地存储中的 access_token,并在请求(js 代码)中添加了正确的令牌,但在实际的 XHR 调用中发送了错误的令牌。重新安装 Chrome 后问题再次解决...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2019-04-11
    • 2020-12-11
    • 2020-01-24
    • 2022-01-07
    • 2020-11-24
    • 1970-01-01
    相关资源
    最近更新 更多