Я создаю приложение с использованием node.js и express.js с паспортной аутентификацией с использованием MVC Architecture. Я строго следовал учебному пособию о том, как реализовать и интегрировать паспортную аутентификацию с использованием локальной стратегии. Похоже, стратегия работает нормально. В моем контроллере, который обрабатывает аутентификацию (используя passport.authenticate), successRedirect всегда выполняется, учитывая, что я отправляю совпадающие данные с экземпляром в базе данных. Однако после перенаправления туда, куда указывает successRedirect, я получаю ошибку 500 запроса GET. После этого, если я пытаюсь получить доступ к другим маршрутам, я по-прежнему получаю ту же ошибку, поэтому не могу отобразить нужный шаблон представления. Однако, если я пытаюсь получить доступ к тем же маршрутам без попытки входа в систему, запрос GET успешно выполняется с помощью statusCode 200.
Я получаю точную ошибку: GET / dashboard 500 4,313 мс - 941
users.js route
var usersController = require('../../controllers/usersController');
/* POST login */
router.post('/login', usersController.loginAccount);
usersController.js
module.exports.loginAccount = function (req, res, next) {
passport.authenticate('local', {
successRedirect: 'dashboard',
failureRedirect: '/users/login',
failureFlash: true
}) (req, res, next);
}
index.js route
router.get('/dashboard', ensureAuthenticated, indexController.dashboardPage);
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated())
return next();
else{
req.flash('error_msg', 'Please log in to view this resource');
res.redirect('/users/login');
}
}
Командная строка после попытки входа в систему: Выполнение (по умолчанию):ВЫБРАТЬ id
, firstname
, lastname
, email
, username
, password
, address
, createdAt
, updatedAt
ОТ clients
КАК client
ГДЕ client
. username
= 'nikolaisennn' LIMIT 1;Сериализация пользователяPOST / пользователи / логин 302 144,266 мс - 74Десериализация пользователяИД пользователя: 65GET / приборная панель 500 4,313 мс - 941
Я застрял в этом вопросе некоторое время, пытался найти решения в Интернете, но мне не удалось найти то, что мне нужно. Я уверен, что мне чего-то не хватает, но я понятия не имею, что это такое.