如何保护/ admin下的路由,何时get / admin /不pipe检查login状态

我有一个pipe理员后端希望通过检查login状态来保护。 我写了一个/pipe理路线来检查用户是否login,如果不是,它应该redirect到/pipe理/login,如果是的话,它应该呈现login。 但如何扩展到包括/pipe理/testing和/pipe理/任何,所以每次用户尝试访问/pipe理/ *,它应该检查用户是否login。

我的/pipe理员路线:

app.get('/admin', Admin.index); 

检查login或不:

 exports.index = function(req, res) { if (req.session.user == null){ if (req.cookies.userName == undefined || req.cookies.password == undefined){ res.redirect('/admin/login'); } else { var data = { userName: req.cookies.userName, password: req.cookies.password } AccountManager.AutoLogin(data, function(err, result){ if (!err) { console.log('login: '+result); req.session.user = result; res.render('admin/index', { title: 'Admin Control Center' }); } else { console.log(err); res.redirect('/admin/login'); } }); } } else { res.render('admin/index', { title: 'Admin Control Center' }); } 

};

您可以通过此function检查login状态

 function isLoggedIn(req, res, next) { // if user is authenticated in the session, carry on if (req.isAuthenticated()) return next(); // if they aren't redirect them res.redirect('/'); } 

并在你的pipe理路线中使用这样的:

 app.get('/admin', isLoggedIn, function (req, res){ // do your code; });