验证区域的节点路由?

时间:2012-08-27 21:37:46

标签: node.js authentication routes

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

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

和登录路线:

/login

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

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

3 个答案:

答案 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。