yuuki blog

プログラミング をアプトプットしています。

Heroku(ユーザー認証の導入方法)

 Basic認証

Basic認証とは、HTTP通信の規格に備え付けられている、ユーザー認証の仕組みのことです。
サーバーとの通信が可能なユーザーとパスワードをあらかじめ設定しておき、それに一致したユーザーのみが、Webアプリケーションを利用できるようにします。

画像 5-3-1

Basic認証をRailsAppへ導入

authenticate_or_request_with_http_basicメソッド

RailsアプリケーションでBasic認証を実装するために使用する、Railsのメソッドです。
ブロックを開き、ブロック内部でusernameとpasswordを設定することでBasic認証を利用できます。

 

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  before_action :basic_auth
  (省略)

  private

  def basic_auth
    authenticate_or_request_with_http_basic do |username, password|
      username == 'admin' && password == '2222'
    end
  end
end

 

localhost3000で確認

開発環境の環境変数に、ユーザー名とパスワードを設定

macOSがCatalina以降

% vim ~/.zshrc

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

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

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

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  before_action :basic_auth
  (省略)

  private

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

 

localhost3000で確認

 

Heroku上で環境変数を設定

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

configで確認

% heroku config

=== stormy-journey-22625 Config Vars
BASIC_AUTH_PASSWORD:      パスワード
BASIC_AUTH_USER:          ユーザー名

Herokuへデプロイ

git push heroku master

Heroku上で挙動確認