Je lis des passport.js
informations et des échantillons depuis deux jours, mais je ne suis pas sûr qu'après cela, j'ai fait tout le processus d'authentification.
Comment savoir si je suis connecté, par exemple, j'aurai une barre de navigation avec un bouton de connexion ou de déconnexion, y a-t-il une variable comme le code ci-dessous?
if (login)
<button>logout</button>
else
<button>login</button>
node.js
express
passport.js
RMontes13
la source
la source
app.get
,app.post
etc. Si vous avez besoin de fonctionnalités différentes, vous devriez l'expliquer en détail dans votre question ainsi que ce que vous essayez d'atteindre.Si vous souhaitez l'utiliser dans vos modèles, comme votre exemple de code semble l'indiquer, vous pouvez créer un middleware tel que celui-ci:
Placez ce code quelque part après avoir configuré le passeport.
Et puis utilisez-le dans votre modèle (exemple de swig)
la source
app.use(function(req,res,next){
res.locals.login = req.isAuthenticated();
res.locals.user = req.user;
next();
});
isAuthenticated
donne false dans la prochaine requête. Pourriez-vous aider à répondre à cette question stackoverflow.com/questions/42842171/…Ce n'est pas explicitement documenté mais il existe une
isAuthenticated()
méthode qui est inséréereq
par passeport .Peut être utilisé comme suit,
la source
Je cherchais une telle solution et suis tombé sur cette page. La question est de savoir comment vérifier l'état de connexion côté client.
Après la connexion, je cache le bouton de connexion et affiche le bouton de déconnexion. Lors de l'actualisation de la page, je vois à nouveau le bouton de connexion au lieu du bouton de déconnexion. La seule solution consiste à enregistrer un élément dans sessionStorage si vous utilisez session (et localStorage si vous utilisez JWT). Supprimez cet élément lorsque vous vous déconnectez. Ensuite, à chaque chargement de page, vérifiez cet élément sessionStorage et procédez en conséquence.
la source
utilisez le code ci-dessous dans app.get () ou router.get ()
la source
Bonne question, j'ai eu quelques problèmes en essayant d'implémenter quelque chose comme ça, quand il y a une demande non authentifiée, le guidon ignore le bloc if si la variable res.locals renvoie une valeur falsifiée. Pour résoudre ce problème, vous devez configurer un middleware dans votre fichier app.js pour rendre le req.user disponible globalement dans votre application.
});
Dans votre fichier d'en-tête, vous pouvez effectuer cette vérification pour l'utilisateur authentifié et afficher le contenu en conséquence.
la source