I have a sample node app in which I'm trying to sign-up log-in and log-out users using passport js. I can successfully login and signup users, but when I try to logout users in my terminal I only get the console.log of my deserialize function and it doesn't affect cookies in my browser and also won't log out users since I can retrieve req.user after calling logout function. Here's my passport setup, serialize and deserialize function and also my logout function:
app.use(session({
secret: "secret",
resave: false,
saveUninitialized: true,
cookie: {maxAge:60*60*1000} //1hour
}));
passport.serializeUser((user, cb) => {
console.log("serializing user");
cb(null, user.id);
});
passport.deserializeUser((id, cb) => {
console.log("deserializing");
User.findById(id).then((err, user) => {
if(err) throw err;
const userInformation = {
username: user.email,
};
cb(err, user);
}).catch((err) => {console.error(err)});
});
app.get("/logout", function(req, res){
console.log("logging out, user:" + req.user);
req.logout((err) => {
console.log("inside logout");
if(err) {
console.log("error: " + err);
res.status(500).json({message:"Error logging out"})
} else{
console.log("destorying session in logout");
req.session.destroy(function (err) {
if(err) {
console.log("error: " + err);
res.status(500).json({message: "Error destroying session"});
} else{
res.clearCookie('connect.sid');
res.status(200).json({message: "Logged out successfully"});
}
});
}
});
});
Would appreciate any help with this.
from Trouble logging out using passport js
No comments:
Post a Comment