在会话中更新login的用户详细信息
ExpressJS使用PassportJS。
我需要更新login的用户的详细信息。 虽然我在数据库中进行更新,但是如何在会话中更新它,以便request.user包含更新的用户详细信息?
也就是说,在更新数据库之后,如何更新用户的会话信息呢?
我试着直接分配更新的细节request.user
但它没有工作。 然后我尝试request.session.passport.user
– 这工作,但有一个约5至10秒的延迟之前,它在request.user更新。
是否有我需要调用的函数更新会话中存储的用户信息? 还是有一些其他的对象,我可以更新的地方没有延迟的变化
我也一直在寻找答案。 在任何文档或教程中从未提及!
什么似乎工作是,保存你最近更新的用户,做req.login(user)
…
// "user" is the user with newly updated info 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) }) })
- 在Passport-Mongoose-Local中使用Mongoose-Role
- 护照。authentication死亡沉默
- Nodejs Passportvalidationcallback没有被错误地调用
- 护照的req.isAuthenticated总是返回false,即使我硬编码完成(null,true)
- 如何在Node.js中重置密码后使用passport.jslogin?
- Passport + Node – req.isAuthentiated不是Object.isLoggedIn中的函数
- 护照loginauthentication没有密码字段
- 摩卡柴testing受保护的路线
- 成功,但依然使用failureRedirect – 护照