新用户注册后立即进行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。 请注意,有人实现这一点,他们应该知道,它是适合使用护照本地策略与电子邮件,而不是用户名。
- 如何从运行在appengine中的NodeJS应用程序访问Google CloudML REST API
- 如何在创build用户之前validation电子邮件?
- 基于REST / Web的身份validation即服务的可能性?
- 刷新Firebase令牌
- 如何处理asynchronous。 findOrCreate护照和mongoose的方法
- 在passportjs响应之前的Expressjs / Change header
- 护照facebook战略投掷数据必须是使用Node.js的string
- Azure移动服务javascript后端如何设置和读取cookie?
- 会话身份validationtypes错误:对象#属性“types”<ServerResponse>不是函数