Restrinja o acesso ao seu ambiente de teste Rails

Precisa de uma maneira rápida e suja de restringir o acesso ao seu aplicativo Rails? Talvez você não queira que qualquer pessoa acesse seu ambiente de teste e ainda não tenha implementado a autenticação do usuário.

Primeiro, coloque algo assim em config/initializers/staging_auth.rb

YourRailsApp::Application.configure do
# Restrict access with HTTP Basic Auth for staging environments
unless ENV['STAGING_AUTH'].blank?
config
.middleware.use '::Rack::Auth::Basic' do |username, password|
ENV
['STAGING_AUTH'].split(';').any? do |pair|
[username, password] == pair.split(':')
end
end
end
end

Em seguida, defina a variável de ambiente STAGING_AUTHpara qualquer implantação que você deseja bloquear com HTTP Basic Auth. O formato é:

STAGING_AUTH="user:pass"

ou, se desejar várias credenciais de usuário, separe-as com um ponto e vírgula

STAGING_AUTH="user1:pass1;user2:pass2"

Aqui está um exemplo se você estiver implantando no Heroku:

heroku config:set STAGING_AUTH="foobar:hunter2"