Comment puis-je vérifier pour jeton de l'expiration et de la déconnexion de l'utilisateur?

L'utilisateur peut déconnexion lui-même quand il/elle clique sur le bouton de déconnexion, mais si le jeton est expiré il/elle cant déconnexion parce que dans mon application, le jeton est utilisé à la fois côté serveur et front-end. Lorsque l'utilisateur clique sur le bouton de déconnexion, le jeton à la fois le serveur et le navigateur est désactivée si le jeton est valide. Il est probable que, lorsque l'utilisateur n'a pas de journal et ses expiration de ce jeton, mais n'est pas désactivée dans le navigateur. Pour remédier à cette situation, comment puis-je vérifier pour jeton d'expiration à chaque fois que l'utilisateur visite dans mon application, donc si le jeton est expiré, claire le jeton à partir du navigateur?

J'ai essayé dans la saga des montres en arrière-plan chaque fois que l'utilisateur actualise la page ou de passer à une autre page. Je ne pense pas que c'est un moyen efficace. Je pense middleware entre en jeu.

function* loadInitialActions() {
  var dateNow = new Date();
  console.log(jwtDecode(token).exp < dateNow.getTime() - jwtDecode(token).iat);
  const token =
    JSON.parse(localStorage.getItem("user")) &&
    JSON.parse(localStorage.getItem("user"))["token"];
  if (
    token &&
    jwtDecode(token).exp < dateNow.getTime() - jwtDecode(token).iat
  ) {
    yield put(LOGOUT_SUCCESS);
  }
}

function* initialize() {
  const watcher = yield fork(loadInitialActions);
  yield take([INITIALIZE_ERROR, INITIALIZE_SUCCESS]);
  yield cancel(watcher);
}

function* rootSaga() {
  console.log("rootSaga");
  yield takeLatest(INITIALIZE, initialize);
}

Donc ma question est comment puis-je utiliser le jeton d'expiration de la logique et de la déconnexion de l'utilisateur si le token est expiré depuis le middleware?

OriginalL'auteur Serenity | 2017-07-08