手元でサクッと作ってHerokuに上げたけど誰にでもアクセス可能になるのは困るけどdeviseを組み込むのはもう少し後の工程でやりたい...という時にBASIC認証をかける方法です
##決め打ち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
参考: