LoginSignup
0
0

More than 3 years have passed since last update.

BASIC認証とは

Last updated at Posted at 2021-01-22

自分の備忘録用

Basic認証とは

ベーシック認証(Basic認証)とはWebサイトの特定の領域、つまりページやファイルにアクセス制限をかけることができる認証方法の1つ。ベーシック認証をかけると、認証をかけたWebサイトにアクセスしようとしたとき、認証ダイアログが立ち上がって、ユーザー名(ID)とパスワードの入力が求められる。

設定方法

まずトップページのコントローラーに before_action :basic_authを定義する。

「basic_auth」は変数名なので名前はこれじゃなくてもいい。

class アプリ名Controller < ActionController::Base
  before_action :basic_auth


  private

  def basic_auth
    authenticate_or_request_with_http_basic do |username, password|
      username == 'ユーザー名' && password == '好きなパスワード'
    end
  end
end

ここに出てくる「authenticate_or_request_with_http_basic」と言うメソッドはRailsに用意されているメソッドで
Basic認証を使うときに必要、ブロックの中にusernameとpasswordを入れdo〜endの中にそれぞれ設定する

保守性

でもこのままだとパスワードが丸見えになるので環境変数を設定しその中にusernameとpasswordを代入する形を取る。
macOSがCatalina以降なら
俺はCatalinaなのでこっち


% vim ~/.zshrc

# .zshrcを開いたら、「i」とタイプしてインサートモードに移行

# .zshrcの内部に次の記述を追加
export BASIC_AUTH_USER='ユーザー名'
export BASIC_AUTH_PASSWORD='好きなパスワード'
# 記述を追加したら、escキーを押してインサートモードを抜け、 「:wq」と入力して保存して終了する

# .zshrcを再読み込みし、定義した環境変数を有効にする
% source ~/.zshrc

macOSがMojave以前なら

$ vim ~/.bash_profile

# .bash_profileを開いたら、「i」とタイプしてインサートモードに移行

# .bash_profileの内部に次の記述を追加
export BASIC_AUTH_USER='ユーザー名'
export BASIC_AUTH_PASSWORD='好きなパスワード'
# 記述を追加したら、escキーを押してインサートモードを抜け、 「:wq」と入力して保存して終了する

# .bash_profileを再読み込みし、定義した環境変数を有効にする
$ source ~/.bash_profile

設定できたらコントローラーに戻って以下に編集


def basic_auth
    authenticate_or_request_with_http_basic do |username, password|
      username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]  # 環境変数を読み込む記述に変更
    end
  end

heroku上にも環境変数を反映させるには

% heroku config:set BASIC_AUTH_USER="ユーザー名"
% heroku config:set BASIC_AUTH_PASSWORD="好きなパスワード"

設定できたかを確かめるコマンド⬇︎

% heroku config

設定したらデプロイを忘れない

% git add .
% git commit -m "Basic認証を導入"
% git push heroku master

できたぁ!(悟空)

0
0
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
0
0