如何根据路由有条件地更改passport.deserializeUser

时间:2013-12-01 10:51:22

标签: node.js passport.js

我正在尝试使用passportjs和node.js构建一个Web。我正在使用passport deserializeUser函数来获取每条路线上的req.user。所以,我可以将req.user作为ejs变量传递给客户端。问题是,我不需要在每个路由上使用User模型架构的所有字段。说,对于/ home我只需要_id和客户端的一般信息字段。但是一旦我定义了passport.deserializeUser,我以后就无法控制器减少字段数或增加req.user。是否可以根据路由选择passport.deserializeUser中的特定字段,或者从处理路径请求的任何其他模块更改passport.deserializeUser?

      passport.serializeUser(function(user, done) {
        done(null, user.id)
      })
      passport.deserializeUser(function(id, done) {
        User.findOne({ _id: id },'_id general_info loc current_location notifications favourite', function (err, user) {
          done(err, user)
        })

  })

0 个答案:

没有答案