rails basic認証でもcapybaraのテストを書きたい
遊びで書いた醜いコードをさらすシリーズ2
class ApplicationController < ActionController::Base before_action :auth, except: %i(なんかhttpで来て欲しいアクション), if: ->{ Rails.env.production? } private def auth authenticate_or_request_with_http_basic do |username, password| username == ENV['BASIC_AUTH_USERNAME'] && password == ENV['BASIC_AUTH_PASSWORD'] end end end
きっとcapybaraでもテストできるだろう、けどそれがめんどいのでRails.envで判定してしまう
1人しか使わないようなWEBアプリ(Todoアプリとか)はhttps+Basic認証で十分だったりする。
herokuはドメイン名とかにこだわらなければデフォルトでhttpsが動くので、
DB使って苦労して認証機能をつくらずとも楽にhttps+basic認証を提供できる