我需要通过护照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 );
});
有人可以帮我吗?
这就是 serializeUser
和 deserializeUser
的目的。
这两个功能彼此相反!
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);
})
})
希望它能帮助您!