node.js - Passport.js - 在 session 中存储信息

标签 node.js session express passport.js

我目前有一个 mongoose/express/passportjs 应用程序,可以成功登录和注销。但是, session 中仅存储用户 ID。我想要存储整个用户对象。

这是我使用的代码:

passport.serializeUser(function(user, done) {
  done(null, user._id);
});

passport.deserializeUser(function(_id, done) {
  done(null, { _id: _id });
});

效果很好,这就是我尝试序列化整个用户的原因:

passport.serializeUser(function(user, done) {
  done(null, user._id);
});

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

但是,它不存储任何 session 。

我做错了什么?

最佳答案

serializeUser中,您需要将整个用户传递给done:

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

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

关于node.js - Passport.js - 在 session 中存储信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16047570/

相关文章:

php - 在没有 $_SESSIONs 的情况下实现 Facebook PHP SDK (3.1.1)

node.js - TypeError : Cannot read property 'csrfSecret' of undefined at Object. 句柄 - 使用 Node.js

node.js - 请求正文有值(value),但我无法访问它

javascript - node busboy + express 4 + ng-file-upload 不触发事件

css - 将 gulp-clean-css 添加到现有的 gulpfile.js

node.js - 在没有公共(public) URL 的 Node.js 中从 Google Cloud Storage 检索图像

session - Tomcat:如何为所有虚拟主机共享sessionId

javascript - 从 url 压缩 pdf 文件

javascript - 循环使用本地 promise ;

javascript - 我的路由 index.js 文件给出错误(找不到模块)