Мой контроллер аутентификации не работает, и мое сообщение об ошибке отображается всякий раз, когда я публикую форму регистрации, хотя я использую действительное имя пользователя. Я не знаю, что делать, и я обратился за помощью, я в основном разочарован. Может кто-то, пожалуйста, загляните в мой проект и особенно проверить мой контроллер аутентификации. это будет много значить для меня
Я застрял, как я уже говорил, но сейчас мне нужен кто-то, чтобы помочь мне изменить мой контроллер аутентификации и заставить его работать, а также, пожалуйста, объясните мне важные вещи об этом, и, возможно, то, что я забыл, и т. Д.
https://github.com/tigerabrodi/blogcms
есть мой проект, много любви, если бы вы могли уделить мне время: p
const bcrypt = require("bcryptjs");
const User = require("../models/user");
function getErrorMessage(req) {
let message = req.flash("error");
if (message.length > 0) {
message = message[0];
} else {
message = null;
}
return message;
}
exports.getLoginPage = (req, res) => {
res.render("blog/login", {
pageTitle: "login",
path: "/login",
errorMessage: getErrorMessage(req)
});
}
exports.getsignUpPage = (req, res) => {
res.render("blog/signup", {
pageTitle: "signup",
path: "/signup",
errorMessage: getErrorMessage(req)
});
}
exports.postLogin = (req, res, next) => {
const {
username,
password
} = req.body;
User.findOne({username})
.then(user => {
bcrypt
.compare(password, user.password)
.then(doMatch => {
if (doMatch) {
req.session.isLoggedIn = true;
req.session.user = user;
return req.session.save(err => {
console.log(err);
res.redirect("/");
});
}
})
.catch(err => {
console.log(err);
req.flash("error", "invalid email or password.");
res.redirect("/login");
})
})
.catch(err => {
console.log(err);
req.flash("error", "Invalid email or password.");
return res.redirect("/login");
});
}
exports.postLogout = (req, res, next) => {
req.session.destroy(err => {
console.log(err);
res.redirect("/");
})
}
exports.postSignup = (req, res, next) => {
const {
username,
password
} = req.body;
User.findOne({username})
.then(user => {
if (user === null) {
throw "";
} else {
req.flash("error", "email exists already, please pick a different one.");
return res.redirect("/signup")
}
})
.catch(() => {
return bcrypt
.hash(password, 12)
.then(hashedPassword => {
const user = new User({
username: username,
password: hashedPassword
});
return user.save();
})
.then(result => {
res.redirect("/login");
})
.catch(err => {
console.log(err);
})
})
}```