express-generatorを使って、Expressプロジェクトを生成した場合、プロジェクトフォルダ以下に静的ファイル置き場としてpublicが作成されます。(一般的なExpressプロジェクトのディレクトリ構成)
この記事では、このpublic以下に配置した静的コンテンツのみにBasic認証をかける方法を紹介します。
必要パッケージ
必要なパッケージをインストールしておきます。
$ npm install serve-static
$ npm install http-auth
app.jsの変更
requireします
require.js
const serveStatic = require('serve-static');
const auth = require('http-auth');
ミドルウェアの定義
defMiddleware.js
let basic = auth.basic({
realm: "fail"
}, (username, password, callback) => {
callback(username === "root" && password === "pass");
});
let authMiddleware = auth.connect(basic);
ミドルウェアの読み込み
useMiddleware.js
app.use('/', authMiddleware, serveStatic(__dirname + '/public'));