Случайный 400 & quot; token_invalid & quot; ошибки с приложением Laravel / jwt-auth и Angular / Satellizer

У меня есть приложение Angular, которое использует API, который я построил в Laravel, и я использую jwt-auth для управления токенами и сателлитер на внешнем интерфейсе для отправки токена с каждым запросом.

Моя живая среда (как для внешнего интерфейса, так и для API — которая будет перемещена на другой сервер после завершения работы приложения) на данный момент состоит из 2 экземпляров AWS EC2, работающих под управлением nginx с балансировщиком нагрузки. Оба сервера имеют одинаковый секретный ключ jwt.

Тем не менее, и в настоящее время я не могу обработать какой-либо шаблон, я случайно получаю 400 «token_invalid» ошибок, возвращаемых из моего API. Это не один конкретный маршрут API-интерфейса, а также не при каждой загрузке приложения. Когда я получаю ошибку 400, например, от моей конечной точки / клиентов, другие запросы возвращают 200. В следующий раз все вернется 200-х годов. Время после этого я могу получить 200 для / клиентов, но 400 ошибка для / пользователей.

Может ли это быть проблемой для меня с использованием балансировщика нагрузки? Секретный ключ jwt, как я уже сказал, одинаков на обоих серверах, так как весь код находится в GIT.

Я не использую промежуточное ПО jwt.refresh.

Еще одна вещь, которую стоит упомянуть, это то, что я никогда не получаю 400 ошибок при локальном запуске приложения через Homestead, только в производстве.

РЕДАКТИРОВАТЬ — кажется, что выход из системы (который очищает мой пользовательский объект (только основные сведения) и токен из локального хранилища, очистка моего кэша и последующий вход в систему чаще всего вызывает ошибку — это полезно?

Ниже приведен пример одного из моих вызовов 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
})

Я действительно изо всех сил пытаюсь отладить это, поэтому любая помощь будет высоко ценится. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]