Posted at

Herokuデプロイ時にBASIC認証をかける方法

More than 5 years have passed since last update.

手元でサクッと作ってHerokuに上げたけど誰にでもアクセス可能になるのは困るけどdeviseを組み込むのはもう少し後の工程でやりたい...という時にBASIC認証をかける方法です

スクリーンショット_2014_02_21_9_58-4.jpg


決め打ちBASIC認証

コントローラーに以下を記述します。


app/application_controller.rb

http_basic_authenticate_with :name => 'admin', :password => 'hogehoge' if Rails.env == "production"


これだけです。コントローラーを限定したい場合は各々のコントローラーに記述します。


:only => [:index, :show]

:except => [:index]


のように追加すると認証範囲を限定する事もできます。


Herokuで環境変数を使う方法

ソース上にはパスワードを残したく無い場合は、コントローラーには以下のように記述します。


app/application_controller.rb

http_basic_authenticate_with :name => ENV['BASIC_AUTH_USERNAME'], :password => ENV['BASIC_AUTH_PASSWORD'] if Rails.env == "production"


Herokuで環境変数を設定すればOKです。


heroku config:add BASIC_AUTH_USERNAME="admin" BASIC_AUTH_PASSWORD="hogehoge" --app APPNAME



参考:

http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Basic.html