Node.js 如何在express.js中保护路由?

Node.js 如何在express.js中保护路由?,node.js,express,passport.js,Node.js,Express,Passport.js,例如,在《流星》中,有 Router.plugin('ensureSignedIn'); Router.plugin('ensureSignedIn', { except: ['home', 'atSignIn', 'atSignUp', 'atForgotPassword'] }); 因此,未签名的用户不能访问除上述四条路由之外的其他路由 如何在express.js中执行此操作?我也在使用passport.js。我不熟悉Meteor,但您可以执行以下操作,假设您希望页面仅对经过身份验证的

例如,在《流星》中,有

Router.plugin('ensureSignedIn');
Router.plugin('ensureSignedIn', {
  except: ['home', 'atSignIn', 'atSignUp', 'atForgotPassword']
});
因此,未签名的用户不能访问除上述四条路由之外的其他路由


如何在express.js中执行此操作?我也在使用passport.js。

我不熟悉Meteor,但您可以执行以下操作,假设您希望页面仅对经过身份验证的用户可用(passport)


ensureAuthenticated
函数只是一个示例,您可以定义自己的函数。调用
next()
继续请求链

是否有任何npm LIB?通过使用上述函数,我必须在每个
应用程序中添加此函数。不知道,如果要保护设置的路径,可以使用中间件,例如
应用程序。使用(“/user/*”,确保重新验证)
将保护任何匹配的路由。既然此路由受保护,并且无法通过下一步,您如何为其编写单元测试。。。
function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated())
    return next();
  else
    // Return error content: res.jsonp(...) or redirect: res.redirect('/login')
}

app.get('/account', ensureAuthenticated, function(req, res) {
  // Do something with user via req.user
});