6

Node で Express を使用して RESTful API を実装していますが、どちらも初めてです。基本認証を使用してアクセスを制御したいと考えています。

ホワイトリストのようなものを使用して適用したいのですが、その方法がわかりません。

ブラックリストへの登録は簡単です。#VERB呼び出しに 2 番目の引数を追加するだけです。

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

私はそれをさらに進めて、すべてをブラックリストに載せることができます:

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

しかし、basicAuth を除くすべてのルートに適用したいと考えていますPOST /users。それを行うエレガントな方法はありますか?「ブラックリスト」アプローチを使用して、必要なルートから選択的に削除できますか? 方法がわかりませんでした。

4

2 に答える 2

8

POST /usersブラックリストに登録されたルートの前に ルートを定義します。

app.post('/users', function(req, res) {
  ...
});

app.all('*', asyncAuth, requestHandler);
于 2013-03-15T08:24:15.503 に答える
2

ホワイトリストに登録されている正規表現のリストを維持し、リスト内の各 URL に対して 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);
}

それらの線に沿った何か

于 2013-03-15T04:39:46.627 に答える