2016-02-25 73 views
0

我試圖使用用戶信息的修改後更新護照會話:護照會話不更新

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) 
}) 
}) 

但即使重新登錄後,沒有任何錯誤我的護照會保持不變。我必須手動註銷並重新登錄才能更新會話信息。任何人都可以解釋發生了什麼?

回答

1

護照集req.user使用您提供的功能passport.deserializeUser。您正在使用req.session.passport.userwhich is incorrect。在更改用戶信息後不需要重新登錄 - 每個請求都會調用deserializeUser,這是您從數據庫中獲取用戶信息的地方。然後您通過req.user訪問它。