今回はexpressで作成したアプリケーションにBasic認証をかける方法を紹介する。

basic-authパッケージのインストール

まずは必要なパッケージをインストールする。

npm i basic-auth --save-dev

設定ファイルの作成

次にBasic認証用の設定ファイルを作成する。

ここでは「basicAuth.js」という名前で作ってみた。

const auth = require('basic-auth');
const admins = {
  'username': {password: 'hogehoge'},
};

module.exports = (request, response, next) => {
  const user = auth(request);
  if(!user || !admins[user.name] || admins[user.name].password !== user.pass) {
    response.set('WWW-Authenticate', 'Basic realm="example"');
    return response.status(401).send();
  }
  return next();
};

メインファイルで呼び出す

最後にbasicAuth.jsをメインファイル「server.js」で読み込めばOK。

const basicAuth = require('./basicAuth');
app.use(basicAuth);

// ...省略

module.exports = app;