2017-09-21 1 views
0

J'utilise PassportJS côté serveur pour l'authentification et côté client j'utilise $httpProvider.defaults.withCredentials = true; pour m'assurer que les cookies sont correctement reçus, réglés et transmis sur d'autres demandes.

Lorsque je me déconnecte, je souhaite effacer tous les cookies de navigateur définis en raison de l'utilisation de $httpProvider.defaults.withCredentials = true;. Comment puis-je faire ceci?

Répondre

0

Il devrait être résolu sur le côté serveur, généralement, vous définissez MaxAge = -1 pour les cookies, puis le navigateur les supprimera automatiquement.

0

Vous pouvez utiliser req.session.destroy dans la route de déconnexion pour détruire la session. Comme

app.get('/logout', function(req,res){ 
req.logOut(); 
req.session.destroy(function (err) { 
     res.redirect('/'); 
    }); 
}); 

Ou utilisez

module.exports.getLogout = function (req, res, next) { 
req.logout(); 
req.session.destroy(function (err) { 
    if (!err) { 
     res.status(200).clearCookie('connect.sid', {path: '/'}).json({status: "Success"}); 
    } else { 
     // handle error... 
    } 
    }); 
};