Как использовать Redux для обновления токена JWT?

Наше приложение React Native Redux использует токены JWT для аутентификации. Есть много действий, которые требуют таких токенов, и многие из них отправляются одновременно, например, когда приложение загружается.

Например.

componentDidMount() {
    dispath(loadProfile());
    dispatch(loadAssets());
    ...
}

И то и другоеloadProfile а такжеloadAssets требуют JWT. Сохраняем токен в состоянии иAsyncStorage, Мой вопрос, как справиться с истечением срока действия токена.

Первоначально я собирался использовать промежуточное ПО для обработки истечения токена

// jwt-middleware.js

export function refreshJWTToken({ dispatch, getState }) {

  return (next) => (action) => {
    if (isExpired(getState().auth.token)) {
      return dispatch(refreshToken())
          .then(() => next(action))
          .catch(e => console.log('error refreshing token', e));
    }
    return next(action);
};

}

Проблема, с которой я столкнулся, заключалась в том, что обновление токена произойдет для обоихloadProfile а такжеloadAssets действия, потому что в момент их отправки токен истекает. В идеале я бы хотел «приостановить» действия, требующие аутентификации, до обновления токена. Есть ли способ сделать это с промежуточным программным обеспечением?

Ответы на вопрос(3)

Ваш ответ на вопрос