gpt4 book ai didi

node.js - Passportjs 自定义回调 - 'Incorrect password' 消息

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

对于常规身份验证,可通过 failureFlash 获取“密码错误”消息

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

passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));

但是如果我使用自定义回调,如何访问“密码错误”消息并将其显示给用户?因为自定义回调似乎只检查 (!user)。我需要自定义回调,因为我通过 ajax 登录,并且无法重定向。

app.get('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err); }
if (!user) { return res.status(401).send({"ok": false}); }
req.logIn(user, function(err) {
if (err) { return next(err); }
return return res.send({"ok": true});
});
})(req, res, next);
});

最佳答案

该消息位于自定义回调处理程序的 info 参数中,使其非常容易访问并发送给用户。

另一方面,我不会指定用户名或密码是否是登录失败的原因。使用这种响应可以很容易地测试哪些用户名存在,然后只关注密码。

关于node.js - Passportjs 自定义回调 - 'Incorrect password' 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34367361/

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