2017-06-02 55 views
0

我需要創建通過護照JS用戶對象的會話,但在的這部分代碼,我可以只添加的所有用戶對象,或user.id:如何從用戶對象中刪除密碼字段中的護照

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

我的對象: VAR userSchema = mongoose.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); 
}); 

有人可以幫我嗎?

回答

0

這就是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); 
    }) 
}) 

希望它可以幫助你!

+0

你真的幫了我)現在,我明白了serializeUser和deserializeUser之間的區別)我們可以在req.user中使用deserializeUser獲取數據)使用serializeUser的數據存儲在req.session中。我們可以在req.session中只添加user.id或所有的用戶對象,這是真的嗎?)非常感謝你)) –

+0

是的,它是...... –

相關問題