новичок с Passport.js здесь пытается сделать простую вещь. Я просто хочу отправить пользовательское сообщение в мой интерфейс, используя im "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);
});
})
);
Опять же, я знаю, что этопроблема с флеш-сообщениями и прочим, но разве нет простого способа отправить собственное сообщение? Все, что мне нужно, это то, что «Неверное имя пользователя» дойдет до моего интерфейса. Я провел несколько дней в этом и все еще ничего. Заранее спасибо!
Правка1: Сделано понятнее.