概要
Herokuにデプロイしたアプリに認証をかけてみたかったのでやってみた。
Express + Node.jsを使ったアプリケーションに、BASIC認証を実装します。
環境
Node.js
v9.3.0
Express
v4.15.5
npm
v5.7.1
パッケージをインストールする
まず、basic-authパッケージをインストールします。
$ npm install basic-auth
実装
auth.js
を作成し、必要に応じてusernameとpasswordを変更します。
auth.js
const auth = require('basic-auth');
const admins = {
'username': { password: 'password' },
};
module.exports = function (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();
};
server.js
で呼び出します。
server.js
const auth = require('./auth');
const app = express();
app.use(auth);