LoginSignup
16
14

More than 3 years have passed since last update.

今更だけどRailsアプリケーションにBasic認証を設定した

Last updated at Posted at 2018-05-15

あるRailsアプリをHerokuにデプロイして個人用に動かしているのですが、
そこにBasic認証の機能を設定したときのメモです。

Controller全体に認証をかける

application.rb
class ApplicationController < ActionController::Base
  before_action :basic

  private
  def basic
    authenticate_or_request_with_http_basic do |name, password|
      name == ENV['BASIC_AUTH_NAME'] && password == ENV['BASIC_AUTH_PASSWORD']
    end
  end
end

これだけです。

また、プロダクション環境だけBASIC認証をかけたいなら

if Rails.env == "production"

を追記し、特定のコントローラーだけに認証をかけたいならapplication.rbではなくそのコントローラーのファイルに書きます。

僕の場合は.envで環境変数を管理しているのでそちらに記載します。

.env
BASIC_AUTH_NAME=hegohego
BASIC_AUTH_PASSWORD=fugafuga

Herokuの環境変数も設定する

これはもうRailsの知識ではなくHerokuの知識ですが、一応。

# herokuの環境変数を確認
$ heroku config

# herokuの環境変数を追加・変更
$ heroku config:set BASIC_AUTH_NAME=hogehoge
$ heroku config:set BASIC_AUTH_PASSWORD=fugafuga
16
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
14