无法将快速会话从一条路线传递到另一条路线

时间:2019-11-01 14:01:46

标签: javascript node.js express

我正在尝试使用express-session变量登录用户。我无法通过其他路线的会议。

我的应用程序初始化文件(index.js)文件:-

const session = require('express-session');
app.use(session({
    secret: config.get('secretKey.key'),
    resave: false,
    saveUninitialized: true,
    cookie: {
        maxAge: 6000
    }
  }))

当用户在填写用户名和密码后单击提交时,节点将重定向到此登录控制器页面:-

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!");
    }
})

0 个答案:

没有答案