[Rails]Basic認証の設定方法
実現したいこと
オリジナルアプリにアクセスできるユーザーを限定するために、Basic認証を導入します🔑
導入の手順
コントローラーの設定
Basic認証は全てのコントローラーで実施したいので、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 == 'basic' && password == '123456'
end
end
end
username == 'basic' のbasic
に認証用のIDを、password == '123456'の123456
に認証用のパスワードを入力します。任意の文字列でOK!
この時点で、ローカル環境ではBasic認証が設定されています。
環境変数の設定
Basic認証は実装できたけど、このままGitにpushするのはNG!
なぜならソースコードに直接ID/PWが記述されているので、そこから情報を入手した他者がBasic認証を突破できてしまうためです。
そこで「環境変数」を設定し、コードに直接ID/PWを記述せずにBasic認証が利用できるようにします。
- ターミナルで以下のコマンドを実行します。
% vim ~/.zshrc
2. 「i」を押してインサートモードに移行する。ターミナルに「INSERT」と表示されればOK。
4. zshに以下の記述を追加する。
export BASIC_AUTH_USER='basic'
export BASIC_AUTH_PASSWORD='123456'
- 「escキー」→「:wq」を入力し、「Enter」を押す。
- 「sourceコマンド」を実行する。
source ~/.zshrc
- application_controller.rbのID/PWを環境変数に置き換える。
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
用語の解説
vim(ヴィム)
一言でいうと、Vimとは「テキストエディタ」のことです。プログラミング言語ではありません。
ただ、一般的なテキストエディタ(AtomやVSCodeなど)とは大きく異なる特徴を持っています。
それは、AtomやVSCodeがGUI(マウスとかで操作できる)なのに対し、Vimは「CLI(ターミナルでコマンド操作)」だということです。
つまり、ターミナルからコマンドを打ち込むことで、Vimというテキストエディタを操作することができます。
zsh(ジーシェル)
zshとは、shell(シェル)の1つで、OSとアプリケーションの間に立ち、ユーザからの要求をシステムに伝えるためのユーザインターフェースです。
シェルとは、コマンドを入力することで動くプログラムのことです。
参考記事
Discussion