Я пытаюсь войти в систему, используя переменную экспресс-сессии. Я не могу пропустить сеансы на других маршрутах.
Файл файла инициализации МОЕГО приложения (index.js): -
const session = require('express-session');
app.use(session({
secret: config.get('secretKey.key'),
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 6000
}
}))
Когда кто-то нажимает на кнопку submit после ввода имени пользователя и пароля, узел перенаправляется на эту страницу контроллера входа в систему: -
router.post('/', (req, res) => {
let user_session = req.session;
if(!user_session._id){
Users.findOne({username: req.body.username}, (err, user) => {
if (err) console.log("Database error: " + err);
let passwordMatch = checkUser(req.body.password, user.password);
if (passwordMatch) {
user_session.userId = user._id;
console.log("Successfully logged in: " + user_session.userId);
} else {
console.log("Login failed");
}
})
} else {
res.redirect('/admin');
}
})
После успешного входа в систему они будут перенаправлены на этот маршрут. Тем не менее, я не захожу в систему, и вместо этого я получаю вам необходимо войти в сообщение, как я установил ниже. Это код моей страницы администратора
router.get('/', function (req,res) {
let user_session = req.session;
if (user_session.userId){
console.log(session.userId)
res.render('./../views/admin/admin.pug');
} else {
res.send("You need to login first!");
}
})