2013-04-16 87 views
1

我目前有一个mongoose/express/passportjs应用程序,可以成功登录和注销。但是,只有用户标识存储在会话中。我希望商店中的整个用户对象。Passport.js - 在会话中存储信息

这里是我使用的代码:

passport.serializeUser(function(user, done) { 
    done(null, user._id); 
}); 

passport.deserializeUser(function(_id, done) { 
    done(null, { _id: _id }); 
}); 

伟大的作品,这是为什么我试图序列整个用户:

passport.serializeUser(function(user, done) { 
    done(null, user._id); 
}); 

passport.deserializeUser(function(user, done) { 
    done(null, user); 
}); 

然而,它并不存储与任何会话。

我在做什么错?

+0

这是不是一个真正的直接回答你的问题,但为什么用你deserializeUser方法{_id:_id}回调?通常你会在该方法中使用Mongoose查询来根据传入的_id从数据库中查找对象。 –

回答

1

serializeUser你需要在整个用户传递给done

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

passport.deserializeUser(function(user, done) { 
    done(null, user); 
});