如何从护照中的用户对象删除密码字段



我需要通过护照JS创建与用户对象的会话,但是在代码的这一部分中,我只能添加所有用户对象或user.id.id:

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

我的对象: var usershema =猫鼬。Schema({{ 当地的: { 电子邮件:字符串, 密码:字符串, },, }(;

passport.serializeUser(function(user, done) {
//Also i tried to delete object field here 
     //( delete user.local.password ) ,
           //but it didn't help
    done(null, user.id );
});

有人可以帮我吗?

这就是 serializeUserdeserializeUser的目的。

这两个功能彼此相反!

serializeUser您应该将user.id放在会话中,而deserializeUser是获取整个用户数据。(例如,来自数据库(。

请参阅:

passport.serializeUser(function (user, cb) {
    cb(null, user.id)
})
passport.deserializeUser(function (id, cb) {
    // here you can find by Id, or do any query you want.
    User.findById(id, function(err, user) {
      // here you can change to user object (removing the password), before pass it the cb function
      cb(err, user);  
    })
})

希望它能帮助您!

相关内容

  • 没有找到相关文章

最新更新