gpt4 book ai didi

node.js - 在 session 中更新登录用户详细信息

转载 作者:IT老高 更新时间:2023-10-28 22:08:07 27 4
gpt4 key购买 nike

我正在使用 PassportJS 和 ExpressJS。

我需要更新登录的用户详细信息。虽然我确实在数据库中更新了它,但我如何在 session 中也更新它,以便 request.user 包含更新的用户详细信息?

即更新数据库后,如何更新用户的 session 信息?

我尝试将更新后的详细信息直接分配给 request.user 但它不起作用。然后我尝试了 request.session.passport.user - 这很有效,但是在 request.user 中更新之前有大约 5 到 10 秒的延迟。

我需要调用一个函数来更新 session 中存储的用户信息吗?或者是否有其他一些我可以更新的对象,其中的更改没有延迟

最佳答案

我也一直在寻找这个问题的答案。从未在任何文档或教程中提及!

似乎可行的是,在保存新更新的用户后,执行 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)
})
})

线索就在这里... https://github.com/jaredhanson/passport/issues/208

关于node.js - 在 session 中更新登录用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24493243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com