Aggiornamento:sia req.logout() o req.session.destroy() non funziona
Si comporta coerente con la mia login reale FB. Quando esco dal mio Facebook e clicco sul pulsante "login" sul mio sito web, mi reindirizza alla pagina di login di Facebook e mi chiede di accedere. Successivamente, torno alla pagina web "profile.html" sul mio sito web correttamente. Tuttavia, quando faccio clic su "Esci" dal mio sito Web, viene visualizzata la pagina iniziale del mio sito Web. Questa volta, quando faccio di nuovo clic sul pulsante "accedi", si passa direttamente a "profile.html" del mio sito web. Sembra che l'ultimo "logout" non abbia funzionato affatto. Il "logout" può funzionare solo quando disconnetto il mio account Facebook. Quindi la sessione utilizzata sul mio sito web si basa sulla sessione di Facebook. Molto strano!
Sto utilizzando PassportJS per completare il mio processo di autenticazione. Ma ho trovato req.logout() o req.session.destroy() non funziona affatto.
// route for showing the profile page
app.get('/login', isLoggedIn, function(req, res) {
res.render('profile', {
user : req.user // get the user out of session and pass to template
});
});
// route middleware to make sure a user is logged in
function isLoggedIn(req, res, next) {
// if user is authenticated in the session, carry on
if (req.isAuthenticated()){
console.log("req is authenticated!");
return next();
}
// if they aren't redirect them to the home page
res.redirect('/');
}
// route for logging out
app.get('/logout', function(req, res) {
console.log("logging out!");
req.logout();
req.session.destroy();
res.redirect('/');
});
Quando ho interrotto il logout, posso vedere il messaggio di "disconnessione". E poi sono stato reindirizzato alla home page. Quando ho fatto nuovamente clic sul login, non riesco a vedere nessuna finestra di accesso e sono entrato direttamente nella pagina "profilo". Durante il processo, ho visto "req è autenticato!" Messaggio.
Le mie domande:
1: Dove si trova "req.isAuthenticated()" da? Perché è sempre vero?
2: perché "req.logout()" o "req.session.destroy()" non funziona?
Grazie
Derek