hakobera's blog

技術メモ。たまに雑談

Heroku 上の Express で Basic 認証をかける

テスト環境などで公開したくない場合に、Basic 認証をかけたいことがあると思うが、Exress でそれをやる方法。基本的に Express は Connect ラッパーなので、やり方は Connect と同じ。



Connect - basicAuth

注意したいのは 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); // <- これの前に書くこと
//.. (略)
});