我需要通过护照js创建与用户对象的会话,但在代码的这一部分,我只能添加所有用户对象,或者user.id:
passport.serializeUser(function(user, done) {
done(null, **user.id or user** );
});
我的目标: var userSchema = mongoose.Schema({ 本地:{ 电子邮件:String, 密码:字符串, }, });
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 :(得分:0)
这是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);
})
})
希望它可以帮到你!