express.js-会话访问中间件不起作用

时间:2018-06-28 19:46:39

标签: javascript node.js express session

我正在尝试使用JS,Express和Session创建中间件,其中根据会话是否存在来阻止对某些页面的访问。这是我尝试过的:

function validateAdminLogin(req,res,next) {
  if(req.session.adminId) {
    next()
  } else {
      res.redirect('/signIn')
  }
}

app.all('/admin/*',validateAdminLogin,function(req,res,next){
  next()
})

尝试在没有活动会话的情况下访问/ admin下的任何页面后,代码仍在访问/ admin文件。

1 个答案:

答案 0 :(得分:0)

请确保在任何/ admin端点之前添加以下代码段。

function validateAdminLogin(req,res,next) {
  if(req.session.adminId) {
    next()
  } else {
      res.redirect('/signIn')
  }
}

app.all('/admin/*',validateAdminLogin,function(req,res,next){
  next()
})

示例:

app.get('/admin/test2', (req, res) => {
  res.send('Not affected by middleware')
})

app.all('/admin/*', validateAdminLogin)

app.get('/admin/test', (req, res) => {
  res.send('Affected by middleware')
})