我使用passportjs
withpassport-local
策略对项目中的用户进行身份验证。官方serializeUser
deserializeUser
做法如下:
// serialize and deserialize
passport.serializeUser(function(user, done) {
done(null, user._id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user){
done(err, user.toJSON());
})
});
但由于性能原因,我需要防止查询 User.findById 到我的 MongoDB 数据库,所以我使用以下方法:
passport.serializeUser(function(user, done){
done(null, user.toJSON());
});
passport.deserializeUser(function(user, done){
done(null, user);
});
但是现在我想出了以下问题:如果用户更改他们的数据,如姓名、年龄等,我如何在不注销的情况下更新这些数据?
其实我需要passport.serializeUser
手动执行一些如何?