是否可以在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); }
沿着这些线的东西