我们有一个包含以下路线的应用
/dothis/
...//dothis routes
/dothat
...//dothat routes
/doother
...//doother routes
和登录路线:
/login
和
/ //which currently actually isn't even used, would redirect to /login
是否可以关闭路由,以便实际上只有/和/ login可以在没有身份验证的情况下访问?或者我们是否需要为所有其他路线应用前缀。感谢
答案 0 :(得分:0)
app.get('*', function(req, res, next) {
// console.log(everyauth);
if (!req.session.auth) {
res.redirect('/login');
} else {
next();
}
});
app.get('/login', function(req, res){
res.render('login', {
});
});
似乎有用
答案 1 :(得分:0)
app.all('*', Authentication, function(req, res) {
});
function Authentication(req, res, next) {
if (req is not user) {
if (req.url === '/' || req.url === '/login')
next()
}
else
next();
}
答案 2 :(得分:0)
我有中间件正是这样做的:https://github.com/jaredhanson/connect-ensure-login
app.get('/dothat',
ensureLoggedIn('/login'), // redirect to /login if not logged in
function(req, res) {
// render do that;
});
它可以独立使用,但也可以与Passport无缝集成,以便在登录后,用户将被重定向回他们最初请求的URL。