У меня простая страница входа по паспорту. js.
$("#loginUser").on("click", function () { //login button handler
var User = {
username: $('#username').val().trim().toLowerCase(),
password: $("#password").val().trim()
};
//$("#password").val("");
$.post("/login", User);
});
Ниже приведен код почтового маршрута для «/ login» (взят из паспортных документов):
app.post('/login', function (req, res, next) {
passport.authenticate('local', function (err, user) {
if (err) { return next(err); }
if (!user) { return res.redirect('/'); }
req.logIn(user, function (err) {
if (err) { return next(err); }
return res.redirect('/home/' + user.user_id);
});
})(req, res, next);
});
Ниже приведен код для «домашнего» маршрута:
app.get("/home/:user?", function (req, res) { //home page
console.log(req.params.user)
if (req.user) {
console.log(path.join(__dirname, "../public/home.html"))
res.sendFile(path.join(__dirname, "../public/home.html"), (err) => {
if (err) {
console.log(err);
} else {
console.log('file sent!');
}
});
}
else {
console.log("no user");
res.sendFile(path.join(__dirname, "../public/login.html"));
}
});
Проблема, с которой я сталкиваюсь, заключается в том, что когда страница должна перенаправляться на домашнюю страницу, она просто ничего не делает. console.log("file sent")
сработает без ошибок, даже если ничего не произойдет и страница останется на экране входа в систему. Однако, если я физически наберу localhost: // 8080 / home, страница загрузится отлично.