PassportJS req.user发送所有用户数据

我使用PassportJS本地策略进行用户authentication,其工作完全正常。 但是,当我尝试在任何经过​​身份validation的页面上的console.log(req.user)时,我将获取当前login用户的所有数据库条目详细信息。 这是正常的吗? 包括散列密码

{ name: 'Test', email: 'vxxxxx@gmail.com', password: '$2a$10$aw2aMtXtrmKHi.kd97c0NeMOu6Y0hlcM4xk2VuqfneLYdEkc676eq', phone: 9xxxxx6, _enabled: true, _id: 5253f326003e55f028000001, __v: 0 } 

我的本地策略是这样定义的。

 passport.use(new strategy(function(username, password, done) { User.findOne({ "email": username }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Unknown user ' + username }); } if(user._enabled==false) return done(null,false,{message: "Dear "+user.name+", Please verify your email first!"}); if(bcrypt.compareSync(password,user.password)){ return done(null, user); app.set("userEmail",username); } else { return done(null, false, { message: 'Invalid password' }); } db.close(); }) })); 

有没有可能篡改这些数据?

是的,它可以tmpered。 绑定到req对象的用户使用deserializeUser加载。

请参阅: http : //passportjs.org/guide/configure/和“会话”部分。

Okei我得到了答案,我不是正常的deerializing!

 passport.deserializeUser(function(id, done) { User.findOne({_id:id}, function (err, user) { done(err, user._id); }); });