gpt4 book ai didi

node.js - 当电子邮件或密码为空时,不会调用 Passport 本地策略

转载 作者:搜寻专家 更新时间:2023-11-01 00:44:04 25 4
gpt4 key购买 nike

我使用以下 passportjs LocalStrategy:

passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
// ...
}
));

如果我在 POST 请求中提供电子邮件和密码属性,一切正常。但是,如果 then 之一为空,则此中间件不会执行,但会发生重定向。

我需要知道发生了什么并将 req.flash 传递给客户端来处理这个异常。我该怎么做?

最佳答案

你可以使用 express-validator .它通常可以检查您的电子邮件/密码字段是否为空。

只需在您的 app.js 入口点中要求并使用它:

var expressValidator = require('express-validator');
app.use(bodyParser());
app.use(expressValidator()); // then let the app use it, place it HERE after the bodyParser()

在您的登录/注册路径中:

router.post('/signup', function (req, res) {
req.assert('email', 'Email is not valid!').isEmail();
req.assert('password', 'Password is empty!').notEmpty();

var err = req.validationErrors();

if (err) {
req.flash('errors', errors);
return res.redirect('/login');
}
// Your passport here....
}

然后进行您的 Passport 操作,例如登录或注册。

关于node.js - 当电子邮件或密码为空时,不会调用 Passport 本地策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25218477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com