J'ai ajouté un message flash sur la page en utilisant connect-flash.

Pour afficher le message flash, j'ai redirigé la page vers la même page avec le code suivant

 req.flash('success', 'Password Changed successfully, you will be logout after 10 seconds');
 return res.redirect('/user/changepwd');

De cette façon, je peux afficher un message flash sur la page. mais après cela, je veux que l'utilisateur se déconnecte automatiquement et redirige vers la page d'accueil.

Comment puis-je y parvenir? pouvons-nous rediriger deux fois avec certains setTimeout ()?

enter image description here

0
Prasad Gavande 11 mars 2021 à 11:13

1 réponse

Meilleure réponse

Avec l'aide du commentaire de Mihai, redirigez l'utilisateur depuis l'interface utilisateur. c'est-à-dire le fichier ejs comme ci-dessous.

<% if (sucessMessage) { %>
<script type="text/javascript">
  setTimeout(function () {
    document.location.href = "/logout";
  }, 10000);
</script>
<% } %>

Avec ce code, si j'obtiens successMessage, puis redirige vers la page de déconnexion. et à l'application express, j'ai effacé tous les cookies et toutes les sessions, puis je les redirige vers la page de connexion.

Ajouté une route pour la déconnexion comme ci-dessous

router.get('/logout', userController.getLogout);

Puis ajouté sa fonction de contrôleur

  exports.getLogout = (req, res, next) => {
    if (req.session.user && req.cookies.user_sid) {
        res.clearCookie("user_sid");
        res.redirect("/login");
    }
}
1
Prasad Gavande 11 mars 2021 à 09:08