Heroku 上の Express で Basic 認証をかける
テスト環境などで公開したくない場合に、Basic 認証をかけたいことがあると思うが、Exress でそれをやる方法。基本的に Express は Connect ラッパーなので、やり方は Connect と同じ。
注意したいのは app.use(app.router) の前に書かないと、ちゃんと動かない(認証キャンセルしても遷移してしまう)点。
ユーザ、パスワードは例によって heroku config で追加しておく。
heroku config:add BASIC_AUTH_USER=user heroku config:add BASIC_AUTH_PASS=pass
app.configure(function(){ //.. (略) if (process.env.BASIC_AUTH_USER) { app.use(express.basicAuth(process.env.BASIC_AUTH_USER, process.env.BASIC_AUTH_PASS)); } app.use(app.router); // <- これの前に書くこと //.. (略) });