gpt4 book ai didi

php - Laravel/jwt-auth 和 Angular/Satellizer 应用程序出现随机 400 "token_invalid"错误

转载 作者:行者123 更新时间:2023-12-04 12:04:03 25 4
gpt4 key购买 nike

我有一个 Angular 应用程序,它使用我在 Laravel 中构建的 API,我使用 jwt-auth 进行 token 管理,并在前端使用 satellizer 来发送每个请求的 token 。

我的实时环境(对于前端和 API - 一旦应用程序完成,它将被移动到不同的服务器)目前由 2 个运行 nginx 和负载均衡器的 AWS EC2 实例组成。两台服务器具有相同的 jwt key 。

但是,目前我无法计算出任何模式,我随机收到 400 个从我的 api 返回的“token_invalid”错误。它不是一个特定的 api 路由,也不是应用程序的每个负载。例如,当我从我的/clients 端点收到 400 错误时,其他请求将返回 200。下一次,所有将返回 200 的。之后的时间我可能会为/clients 返回 200,但为/users 返回 400 错误。

这可能是我使用负载平衡器的问题吗?正如我所说,jwt key 在两台服务器上是相同的——因为所有代码都在 GIT 中。

我没有使用 jwt.refresh 中间件。

另一件事要提到的是,当我通过 Homestead 在本地运行应用程序时,我永远不会返回 400 错误,任何在生产中。

编辑 - 似乎注销(这会清除我的用户对象(仅限基本详细信息)和本地存储中的 token ,清除我的缓存,然后重新登录通常会导致错误 - 这有帮助吗?

下面是我的 api 调用之一的示例。

App.js

.service('ClientsService', function($http, $q, __env) {
this.index = function () {
var deferred = $q.defer();
$http.get(__env.apiUrl + '/clients')
.then(function successCallback(response) {
console.log(response.data);
deferred.resolve(response.data);
},
function errorCallback(response) {
console.log(response);
});
return deferred.promise;
}
})

ClientsController.js
.controller('ClientsController', function(ClientsService, $stateParams, $mdDialog, $mdToast) {
var vm = this;
ClientsService.index().then(function(clients) {
console.log('ClientsCtrl init');
vm.clients = clients.data;
});
// other controller code
})

我真的很难调试这个,所以任何帮助将不胜感激。如果需要更多信息,请告诉我。

最佳答案

https://github.com/tymondesigns/jwt-auth/issues/1583
解决方案:在 .env 文件中使用相同的 jwt secret

关于php - Laravel/jwt-auth 和 Angular/Satellizer 应用程序出现随机 400 "token_invalid"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078842/

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