高木のブログ

Herokuで動かしているRailsアプリにベーシック認証を掛ける

2019/11/26

家用のRailsアプリをHerokuで動かしているが、一応認証は入れておきたいなと思ってベーシック認証を掛けた時のメモ

やり方

http_basic_authenticate_withというメソッドが用意されているので、ApplicationControllerに記述するだけで出来る。

# app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  http_basic_authenticate_with name: 'name', password: 'password'
end

最終的には本番時のみ動作してほしいのとnamepasswordは環境変数にしたいので以下のようになった。

# app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  http_basic_authenticate_with name: ENV['BASIC_AUTH_NAME'], password: ENV['BASIC_AUTH_PASSWORD'] if Rails.env.production?
end

Herokuの環境変数の設定方法はheroku config:add HOGE='hoge'

$ heroku config:add BASIC_AUTH_NAME='hoge'
$ heroku config:add BASIC_AUTH_PASSWORD='fuga'

Pixela