我正在尝试使用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文件。
答案 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')
})