【问题标题】:Accessing session from another routes从其他路由访问会话
【发布时间】:2018-06-30 14:28:41
【问题描述】:

大家好,我尝试使用 Express.js 实现非常简单的身份验证。对为什么无法从其他路由读取会话感到困惑。这是我的代码:

router.post('/', function(req, res){
  var username = req.body.username;
  var password = req.body.password;
  var sess = req.session;
  var sql = "SELECT * FROM user WHERE username='" +username+ "' && password='" +password+"'";
  connection.query(sql, function(err, rows, field){
    if(err) throw err;
    if(rows[0]){
      console.log('Username: ', rows[0].username);

      var sessionObj = {
        username: username,
        role: rows[0].role,
        fullname: rows[0].nama_lengkap,
        email: rows[0].email
      };      
      sess.obj = sessionObj;
      res.render("../views/login/home", {person: sess.obj});
    }
    else{
      console.log('no data found');
    }

  });

我想从获取路线中调用它,但它不起作用。

【问题讨论】:

  • 您可以在服务器上使用会话,但如果您想在视图中访问会话值,那么您可以通过不同的方式传递会话值,就像我们无法直接访问会话值一样,所以像 let person = req.locals.person = sess.obj; res.render('home",{person:person}); 一样传递它并在视图侧访问它
  • 哦,我明白了@SantoshSuryawanshi,谢谢

标签: node.js express session authentication


【解决方案1】:

而不是使用会话变量使用 cookie 作为结果,您将能够在前端访问它,并能够在下一个请求中将其发送回服务器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多