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_AUTH
para 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"