デフォルトで用意されている Basic 認証の仕組みの使い方。ユーザ名 chihaya
, パスワード password72
とすると、以下のようにして行える。
Rails5.1以降
class ApplicationController < ActionController::Base
http_basic_authenticate_with name name: 'chihaya', password: 'password72' unless Rails.env.production?
end
特定の処理でスキップしたい場合、 except
を使うか、before_action
で処理する
# except を使う場合
class NanohaController < ApplicationController
http_basic_authenticate_with name name: 'chihaya', password: 'password72', except: :show unless Rails.env.production?
def show
end
end
# before_action を使う場合
class ApplicationController < ActionController::Base
before_action :basic_authentication
private
def basic_authentication
return if Rails.env.production?
http_basic_authenticate_with name name: 'chihaya', password: 'password72'
end
end
class NanohaController < ApplicationController
skip_before_action :basic_authentication, only: [:show]
def show
end
end
Rails5.0以前
class ApplicationController < ActionController::Base
before_filter :basic_authentication
# テストだけ使うBasic認証
protected
def basic_authentication
return if Rails.env.production?
authenticate_or_request_with_http_basic do |user, pass|
[user, pass] == ['chihaya', 'password72']
end
end
end
特定のActionはBasic認証かけたくないならば、skip_before_filter
を使う。
class NanohaController < ApplicationController
skip_before_filter :basic_authentication, only: [:show]
def show
end
end
グッジョブ!