user3677331
user3677331

Reputation: 698

Passport session not updating

I'm trying to update the passport session after user info change using:

user.save(function(err) {
if (err) return next(err)
// What's happening in passport's session? Check a specific field...
console.log("Before relogin: "+req.session.passport.user.changedField)

req.login(user, function(err) {
    if (err) return next(err)

    console.log("After relogin: "+req.session.passport.user.changedField)
    res.send(200)
})
})

But even after re-login, with no errors my passport session remains the same. I have to manually logout and log back in for the session info to update. Can anyone explain what's happening?

Upvotes: 0

Views: 722

Answers (1)

vesse
vesse

Reputation: 5078

Passport sets req.user using the function you have provided with passport.deserializeUser. You are using req.session.passport.user which is incorrect. There is no need to re-login after change of user information - deserializeUser is called on every request, and this is where you fetch the user information from your database. Then you access it via req.user.

Upvotes: 1

Related Questions