2015-11-13 7 views
1

Привет, я только что столкнулся с проблемой, которую я не совсем понимаю.Заголовки Weirdly Refreshhed с fetch-api в Redux-Thunk

Мой API передает новый Auth-Token своим клиентам по каждому запросу, который будет использоваться по следующему запросу и снова получит новый. Но есть небольшая завихренность: запросы, отправленные за короткий промежуток времени (в течение нескольких секунд), будут считаться пакетными, и все эти запросы могут и должны использовать один и тот же токен, поскольку API не даст новый токен для этих ,

Что странно, все ответы партии resquests НЕ содержат новый токен, но мой клиент приложение все-таки удалось, как-то, чтобы обновить его состояние со старыми и выдыхаемом лексем ...

Вот что я делаю: При каждом успешном запросе, я направить действие «Refresh-токен», который получает новую информацию из заголовков ответа так:

let accessToken = response.headers.get("Access-Token") 
let expiry = response.headers.get("Expiry") 
dispatch(refreshTokens({ 
    status: "loggedIn", 
    accessToken: accessToken, 
    expiry: expiry 
})); 

response приходит из выборки-апи, и мне кажется, что это дает мне истекшие ответы, когда заголовки отсутствуют.

Огромное спасибо тому, кто может объяснить мне, что произойдет. Сейчас мое неудовлетворительное решение состояло в том, чтобы отключить функцию запроса пакета.

ответ

1

Я не думаю, что можно сузить проблему, основываясь на фрагменте кода вы поделились, но я рекомендую следующие вещи:

  1. Использование redux-devtools для проверки произошли действия и как они влияют на состояние.
  2. Рассмотрите возможность использования redux middleware, чтобы обновить accessToken и срок годности. Ваш вариант использования подходит очень хорошо. Действия должны отражать взаимодействие пользователя, которое refreshToken не является.
+0

Благодарим за предложение промежуточного программного обеспечения redux. Я пропустил изучение этого вопроса. И да, я позже включил devTools, но не смог получить больше ключей от него, действие REFRESH_TOKEN (отправлено в thunk) просто как-то переносит истекшие жетоны ... – senseye