Notre Réagir Natif Redux application utilise JWT les jetons d'authentification. Il y a beaucoup d'actions qui nécessitent de tels jetons et beaucoup d'entre eux sont envoyés simultanément par exemple, lors de l'application de la charge.
E. g.
componentDidMount() {
dispath(loadProfile());
dispatch(loadAssets());
...
}
Les deux loadProfile
et loadAssets
besoin de JWT. Nous avons enregistrer le jeton de l'état et de l' AsyncStorage
. Ma question est comment gérer jeton d'expiration.
A l'origine, j'allais à l'utilisation du middleware pour la manipulation du jeton d'expiration
// 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);
};
}
Le problème que j'ai rencontré était que l'actualisation du jeton qui va se passer pour les deux loadProfile
et loadAssets
d'actions parce qu'au moment où ils sont expédition le jeton sera expiré. Idéalement, je voudrais à "pause" des actions qui nécessitent une authentification jusqu'à ce que le jeton est actualisé. Est-il un moyen de le faire avec middleware?