我先看了一下使用Passport、MongoDB和Express实现持久化会话,但是它没有帮助或者说不太合理。
我正在尝试让我的网站实现持久登录。我的序列化过程出了问题。
整个护照文件可以在github上找到。
我认为问题在于我立即反序列化,或者至少控制台日志显示如此。
或者可能与我的会话有关:
我正在尝试让我的网站实现持久登录。我的序列化过程出了问题。
// Passport needs to be able to serialize and deserialize users to support persistent login sessions
passport.serializeUser(function(user, done) {
console.log('serializing user:',user.username);
//return the unique id for the user
return done(null, user._id);
});
//Desieralize user will call with the unique id provided by serializeuser
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
console.log('deserializing user:',user.username);
return done(err, user);
});
});
整个护照文件可以在github上找到。
我认为问题在于我立即反序列化,或者至少控制台日志显示如此。
或者可能与我的会话有关:
app.use(session({
secret: 'keyboard cat',
cookie : {
maxAge: 3600000 // see below
}
}));
这是我的用户模式:
var userSchema = new mongoose.Schema({
username : String,
password : String, //Hash
created_at : {type: Date, default : Date.now}
});
谢谢帮助!