【发布时间】:2018-11-13 03:17:21
【问题描述】:
此验证工作正常
app.post('/login', passport.authenticate('local-login', {
successRedirect: '/home',
failureRedirect: '/login',
failureFlash: true
})
);
但我正在尝试在使用 express-validator 进行身份验证之前验证表单的字段。
我带着那个
app.post('/login', function(req, res){
req.checkBody('email', 'Email is required').notEmpty();
req.checkBody('email', 'Email is not valid').isEmail();
req.checkBody('password', 'Password is required').notEmpty();
var validationErr = req.validationErrors();
if (validationErr){
res.render('login', {
errors: validationErr,
failureFlash: true
});
} else {
// authenticate once fields have been validated
passport.authenticate('local-login', {
successRedirect: '/home',
failureRedirect: '/login',
failureFlash: true // allow flash messages
})
}
});
使用第二个代码,当我提交表单并且客户端在一段时间后给出错误消息localhost没有发送任何数据时没有任何反应。第一部分工作正常,当我提交一个空表单并达到身份验证方法时,我可以看到所有错误。我怀疑这个question 可能会部分回答我的问题或有点相关,但我无法理解。
passport.js documentation 提供了一个带有函数的示例,但是只有在身份验证成功时才会调用该函数,所以之后。我想在身份验证之前执行字段验证。
如果您需要 passport.authenticate 代码,请告诉我。
【问题讨论】:
标签: javascript node.js express express-validator