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 3 years have passed since last update.

rails Basic 認証

Last updated at Posted at 2021-04-10

##初めに
初学者です。学習のためにアウトプットしています。間違いなどありましたらご指摘お願いします。

Basic認証

Basic認証とはHTTP通信の規格に備え付けられている、ユーザー認証の仕組みのことです。
サーバーとの通信が可能なユーザーとパスワードをあらかじめ設定しておき、それに一致したユーザーのみが利用できる認証システムです。
ページに遷移した時にこんな感じで出てきます。

![]
(https://gyazo.com/13f36b70ca09578f405352b42da60fe4.png)

railsアプリにBasic認証を導入する。

まずはauthenticate_or_request_with_http_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 == 'hoge' && password == '1234'
    end
  end
end

これで設定完了です。ちなみにユーザーnameはhogeパスワードは1234です。

しかしこのままでは問題があります。コード上にBasicコードが記述されていることです。GitHub上に公開した場合、Basicコードのパスワードが誰にでも読める状態になっているからです。
その対策として環境変数を利用する必要があります。環境変数はzsh,またはbashの設定ファイルに記載します。
では軽く用語の説明をしていきます。

####zsh
zshとはログインシェルと呼ばれるものです。簡単に言えば隠しファイルみたいなものです。そしてプログラムの一番最初に対応します。
####bash
bashもログインシェルの1つです。違いはMacのosによってzshかbashを使うかの違いです。
####vim
vimとはサーバー上で使用できるテキストエディタのこと。vim
コマンドを使うことで指定したファイルの編集をターミナルから行うことが可能になります。

##環境変数の設定
私のMacではzshのためzshを使用していきます。
まずはターミナルに以下のコマンドを使用します。

% vim ~/.zshrc

~
~
~
~
のように〜が縦並びでたくさん出てきます。
そのあとiキーを押してインサートモードに移行します。ターミナル左下にINSERTと出てきます。
そのあとにzah内に以下の記述をしていきます。

export BASIC_AUTH_USER='hoge'
export BASIC_AUTH_PASSWORD='1234'

記述が終わったらescキーを使用して:wqと入力し、Enterキーを押します。
最後にsourceコマンドを実行します。

source ~/.zshrc

このsouceコマンドとはシェルに記述された内容を実行する役割があります。
そしてapplication_controller.rbに環境変数を読み込む記述をすれば完成です。

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="hoge"
% heroku config:set BASIC_AUTH_PASSWORD="1234"

最後にherokuにpushして完成になります。

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?