gpt4 book ai didi

node.js - Passport.js 更改默认错误消息

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:12 25 4
gpt4 key购买 nike

我在我的 Node/express 应用程序中使用 Passport.js 进行身份验证,当输入字段为空时, Passport 显示默认消息“缺少凭据”,我该如何更改?可以说“请填写表格”之类的内容

这是我的本地登录策略:

  passport.use('login', new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(email, password, done) {
models.User.findOne({where: {email}}).then(user => {
if (!user)
return done(null, false, {message: 'Email not registered'});
user.checkPassword(password).then(res => {
if (!res)
return done(null, false, {message: 'Incorrect username or password'});
return done(null, user);
});
});
}));

登录路径:

router.post('/login', passport.authenticate('login', {
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true
}));

最佳答案

我明白了,看起来我可以传递可选的回调来验证函数以覆盖默认功能,感谢 oneturkmen 的引用。

这是修改后的路线:

router.post('/signup', (req, res) => {
passport.authenticate('signup', (err, user, info) => {
const body = req.body;
if (req.body.username === '' || req.body.email === '' || req.body.password === '')
info.message = 'Please fill the form';
req.logIn(user, err => {
if (err) res.render('users/signup', info);
else res.redirect('/');
});
})(req, res);
});

关于node.js - Passport.js 更改默认错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47934817/

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