0

我们有一个包含以下路线的应用程序

/dothis/
    ...//dothis routes
/dothat
    ...//dothat routes
/doother
    ...//doother routes 

和登录路线:

/login

/   //which currently actually isn't even used, would redirect to /login

是否可以关闭路由,以便实际上只有 / 和 /login 可以在没有身份验证的情况下访问?或者我们是否需要对所有其他路由应用前缀。谢谢

4

3 回答 3

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', {
  });
});

似乎工作

于 2012-08-27T22:10:11.890 回答
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();
}
于 2012-08-27T22:13:26.743 回答
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。

于 2012-08-28T18:21:48.777 回答