Я создал логин и зарегистрировался с экспресс и паспортом js.Я хочу добавить сообщение о неверном пароле или адресе электронной почты.
в моем index.js (main) добавлено промежуточное ПО для паспорта и анализатора тела со ссылкой на маршруты:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// route files
let index = require("./routes/index");
let auth = require("./routes/auth");
app.use("/", index);
app.use("/auth", auth);
, и я создалКонфигурация паспорта:
const LocalStrategy = require("passport-local").Strategy;
const User = require("../models/User");
const config = require("../config/database");
const bcrypt = require("bcryptjs");
module.exports = function(passport) {
// Local Strategy
passport.use(
new LocalStrategy(
{
usernameField: "email",
passwordField: "password"
},
(username, password, done) => {
// Match Email
let query = { email: username };
User.findOne(query, function(err, user) {
if (err) throw err;
if (!user) {
return done(null, false, { message: "No user found" });
}
// Match Password
bcrypt.compare(password, user.password, function(err, isMatch) {
if (err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, { message: "Wrong password" });
}
});
});
}
)
);
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
};
также добавил для него маршрут:
// Login Process
router.post("/login", (req, res, next) => {
passport.authenticate("local", {
successRedirect: "/",
failureRedirect: "/auth/login",
failureFlash: true
})(req, res, next);
});
successRedirect и faultRedirect работают нормально, но это не дает мне никакой ошибки.Я сделал это на YouTube видео в видео это работает, но в моем коде это не так.
конфигурация подключенной вспышки:
const flash = require("connect-flash");
app.use(require("connect-flash")());