是否可以在Express上的白名单路由中应用基本身份validation/中间件?

我正在使用Express in Node实现一个RESTful API,而我对这两者都是新手。 我想使用基本身份validation来控制访问。

我想应用它使用白名单,但我不知道如何做到这一点。

列入黑名单很简单,我可以用第二个参数来#VERB我的#VERB电话:

 app.get('/', asyncAuth, requestHandler); 

我可以采取更进一步黑名单一切:

 app.all('*', asyncAuth, requestHandler); 

但是我想将我的basicAuth应用到 POST /users 以外的每一条path。 有没有一个优雅的方式来做到这一点? 我可以使用“黑名单”方法,然后select性地将其从我想要的路线中删除吗? 我无法弄清楚如何。

在列入黑名单的路线之前为POST /users定义路线:

 app.post('/users', function(req, res) { ... }); app.all('*', asyncAuth, requestHandler); 

您可以维护列入白名单的正则表的列表,并匹配该列表中的每个url,如果它匹配任何继续,否则需要授权

 app.all('*', asyncAuth); function asyncAuth(req, res, next) { var done = false; whitelist.forEach(function(regexp) { if (req.url.match(regexp)) { done = true; next(); } }); if (!done) requireAuth(next); } 

沿着这些线的东西