我可以强制会话从服务器端更新吗?

时间:2019-05-17 18:04:22

标签: node.js mongodb express session connect-mongo

我有由护照创建的用户个人资料,这些用户个人资料通过connect-mongo存储在mongodb中。如果我更新了会话的用户配置文件,则必须运行req.login()来触发通行证更新用户会话以匹配新的数据库信息。如果我从管理员帐户更改了另一个用户,则无法运行此功能,是否可以为该用户更新该功能,或者在下次加载会话时触发该更新以进行更新?

2 个答案:

答案 0 :(得分:0)

您可以将整个用户对象传递给会话存储,这将确保您的用户对象始终保持最新信息。

passport.serializeUser(function(user, cb) { cb(null, user); });
passport.deserializeUser(function(user, cb) { cb(null, user); });

答案 1 :(得分:0)

我最终不得不手动完成所有操作:

  1. 搜索会话以匹配用户ID
  2. 加载最新的用户信息并在会话中替换
  3. 将新信息保存回数据库

var mongoose = require('mongoose'); var Schema = mongoose.Schema;

features[*].properties."Deventer".latestValue