【问题标题】:Passport.js - store information in sessionPassport.js - 在会话中存储信息
【发布时间】:2015-01-07 03:15:59
【问题描述】:

我目前有一个可以成功登录和注销的 mongoose/express/passportjs 应用程序。但是,只有用户 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);
});

但是,它不存储任何会话。

我做错了什么?

【问题讨论】:

  • 这并不是您问题的直接答案,但为什么您的 deserializeUser 方法使用 { _id: _id } 进行回调?通常,您会在该方法中使用 Mongoose 查询,根据传入的 _id 从数据库中查找对象。

标签: node.js session express passport.js


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2012-02-12
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多