【发布时间】:2017-01-26 05:07:22
【问题描述】:
我正在使用护照/SQL 构建一个基本的用户身份验证应用程序,似乎护照在序列化模型并将其传递给下一个请求时遇到问题。
发布到我的注册表单并成功保存用户(检查 SQL 并确认已插入数据的行)后,我想将模型传递给 Passport 以在下一页进行序列化和使用。
passport.use('local-signup', new LocalStrategy({
usernameField : 'email',
passwordField : 'password',
passReqToCallback : true
},
function(req, email, password, done) {
process.nextTick(function() {
new User({
localEmail: email,
localPassword: User.generateHash(password)
}).save().then(function(model) {
return done(null, model);
});
});
}));
它在这里应该序列化它,但我遇到了一个错误Error: failed to serialize user into session。现在这没有多大意义,因为理论上,我应该在保存承诺中使用return done(null, model); 传递新保存的用户@
passport.serializeUser(function(user, done) {
done(null, user.localEmail);
});
passport.deserializeUser(function(email, done) {
new User({localEmail: email}).fetch().then(function(user) {
done(null, user);
});
});
我是否遗漏了一些明显的东西?任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: node.js passport.js knex.js bookshelf.js