все. У меня проблема с управлением сеансом.
Это моя конфигурация "экспресс-сессии" (app.js) :
app.use(session({
secret: "I love pizza...",
resave: true,
saveUninitialized: true
}));
Когда пользователь входит в систему, я сохраняю некоторые «атрибуты» в req.session , например, ( controller.js ):
exports.login = function (request, response) {
request.session.username = 'admin';
response.render('pages/home', {
title: "home",
username: request.session.username
});
}
Он показывает мне «домашнюю» страницу с «меню» и другими ссылками. Одна ссылка содержит ссылку 'href', которая перенаправляет на страницу ' dashboard ':
<a class="nav-link active d-flex align-items-center nav-link-2"
href="/dashboard">
<span>Dashboard</span>
</a>
И он маршрутизируется в rout.js :
function sessionChecker (req, res, next) {
if (req.session && req.session.username) {
next();
} else {
res.redirect('/login');
}
};
app.get('/dashboard', sessionChecker, home.evaluacion_dash);
Ну, проблема в методе sessionChecker , переменная req.session.username не существует.
С другой стороны, если я заменю response.render на response.send метод, как это:
response.send('login success!!!');
Он показывает мне страницу с текстом: «Войти успешно !!!» и если я напишу (вручную) в адресную строку: 'http://localhost:3000/dashboard', переменная req.session.username существует в sessionChecker метод ....
Любые предложения по настройке в экспресс-сеансе или другой альтернативе, чтобы иметь возможность сохранить 'username' ?
Дополнительная информация:
версия узла: 8.9.3,
экспресс-версия: 4.13.1,
версия экспресс-сессии: 1.15.6
Привет!