【发布时间】:2020-03-16 13:01:32
【问题描述】:
Passport.js 的新手在这里尝试做一件简单的事情。我只想向我的前端发送一条自定义消息,我使用“passport”:“^0.4.0”和“express”:“^4.17.0”和“passport-local”:“^1.0. 0”,但我似乎无法让它工作。我看到这与 express 4 有所不同,尝试下载 connect-flash 但无法正常工作。
这会正常发送错误消息:
res.status(401).send({
message: 'Authentication key expired'
});
现在我正在尝试使用护照策略执行此操作,但似乎没有向客户端发送任何内容,但它发送了一个没有自定义消息的通用 401:
passport.use(
new LocalStrategy({usernameField: "login", passwordField: "password"}, (login, password, done) => {
User.findByLogin(login).then(async user => {
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
let subscription = await user.getValidSubscription();
if (!subscription) {
return done(null, false, {
message: 'Your subscription has expired.'
});
}
user.dataValues.expiration = subscription.expiration;
return done(null, user);
});
})
);
再一次,我知道这是 Flash 消息和其他东西的问题,但是 难道没有简单的方法来发送自定义消息吗?我需要的只是“不正确的用户名”到达我的前端。 我已经花了几天时间,但仍然一无所获。 提前谢谢!
Edit1:使其更清晰。
【问题讨论】:
标签: javascript node.js express passport.js