0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Rails】Basic認証の導入

0
Posted at

目的

Railsで作成したアプリにBasic認証を導入する。

開発環境

macOS: Big Sur
Rubyバージョン: 2.6.5
Railsバージョン: 6.0.0

前提

手順

  1. はじめに
  2. Basic認証の準備
  3. Basic認証の導入

はじめに

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

Basic認証の準備

まずBasic認証の準備として、ユーザーとパスワードを設定します。

ターミナル
% vim ~/.zshrc

「iキー」を押して、インサートモードに移行し、zshの内部に、以下の記述を追加します。
今回、ユーザーは「admin」、パスワードは「2222」とします。

ターミナル
export BASIC_AUTH_USER='admin'
export BASIC_AUTH_PASSWORD='2222'

記述を追加したら「escキー」、 「:wq」を入力後、、「Enterキー」を押して終了します。
最後に、「sourceコマンド」を実行します。

ターミナル
% source ~/.zshrc

これで、BASIC_AUTH_USERとBASIC_AUTH_PASSWORDという名前で、それぞれユーザー名とパスワードを定義できました!
続いて、この環境変数をRailsアプリ側で読み込むようにします!

Basic認証の導入

続いてauthenticate_or_request_with_http_basicメソッドを利用して、Basic認証を導入します。
authenticate_or_request_with_http_basicメソッドとは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 == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
    end
  end
end

これでBasic認証が導入でき、どのページにアクセスしてもBasic認証が要求されるようになりました!
実際に確認してみて正常に動作すれば完了です!

最後に

以上で、Basic認証の導入は完了です。
では。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?