Невозможно передать экспресс-сессию с одного маршрута на другой. - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь войти в систему, используя переменную экспресс-сессии. Я не могу пропустить сеансы на других маршрутах.

Файл файла инициализации МОЕГО приложения (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!");
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...