新用户注册后立即进行Passport身份validation

我正在尝试validation并在/register表单上提交POST后立即login用户。 理想情况下,我希望用户能够注册,然后立即redirect到仪表板,而无需再次input凭据。

我的服务器正在使用Passport 0.1.17,本地策略configuration为使用电子邮件地址和密码login。 目前的代码是:

 app.post('/register', function(req, res) { // attach POST to new User variable var registerUser = new User({ email: req.body.email, password: req.body.password, name: req.body.name }); // save registerUser Mongo registerUser.save(function(err) { if(err) { console.log(err); } else { console.log('registerUser: ' + registerUser.email + " saved."); } }); // here is where I am trying to authenticate and then redirect passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }), res.redirect('/dashboard'); }); 

我将如何重构此代码来保存新用户,然后进行身份validation,最后redirect到仪表板?

提前致谢!

在阅读了关于req.login之后,我提出了这个解决scheme:

 app.post('/register', function(req, res) { // attach POST to user schema var user = new User({ email: req.body.email, password: req.body.password, name: req.body.name }); // save in Mongo user.save(function(err) { if(err) { console.log(err); } else { console.log('user: ' + user.email + " saved."); req.login(user, function(err) { if (err) { console.log(err); } return res.redirect('/dashboard'); }); } }); }); 

我想清理一下,并认为err部分可以更强大,但这是一个function正常的解决scheme。 请注意,有人实现这一点,他们应该知道,它是适合使用护照本地策略与电子邮件,而不是用户名。