Обновление токена при выполнении нескольких запросов ajax в JavascriptJavascript

Форум по Javascript
Ответить
Anonymous
 Обновление токена при выполнении нескольких запросов ajax в Javascript

Сообщение Anonymous »

У меня есть API, который выдает токены доступа JWT и токены обновления. Токены доступа имеют короткий срок действия, поэтому они часто обновляются (условно каждую минуту). Мой интерфейс JS/JQ настроен с помощью $.ajaxPrefilter, чтобы проверить, произошел ли сбой вызова API с кодом 401, и выдать новый токен доступа при обновлении даты истечения срока действия токена обновления. В большинстве ситуаций это работает хорошо, но я сталкиваюсь с проблемой, когда страница перезагружается и выполняются три запроса AJAX подряд. Первый запрос вызывает конечную точку обновления и получает новый токен доступа при обновлении токена обновления. Однако последующие запросы завершаются неудачей, поскольку они отправляют уже устаревший токен обновления, который конечная точка обновления не может проверить. По сути, последующие запросы пытаются выполнить обновление токена до того, как первый завершится, и не выполняют исходные запросы AJAX или перенаправляют меня на страницу входа из-за неудачной аутентификации.
Мой вопрос будет в том, что подход, который я должен предпринять для решения этой проблемы. У меня мало опыта программирования, и я не могу придумать что-то работающее. Я думаю, что каким-то образом ставлю запросы в очередь или откладываю их до тех пор, пока токен не будет обновлен. Я мог бы реализовать решение для ожидания обновления токена при загрузке страницы, но все еще существуют условия, при которых несколько запросов могут реально выполняться в быстрой последовательности, когда требуется обновление токена, так что это просто снизит вероятность возникновения проблемы.

Подробнее здесь: https://stackoverflow.com/questions/793 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»