Ich möchte einen privaten Staging-Server auf Heroku mit einfachen HTTP-Authentifizierung einrichten. Ist das möglich?Gibt es eine Möglichkeit, einfache HTTP-Authentifizierung für eine App auf Heroku einzurichten?
Antwort
Absolut. Die einfachste Lösung besteht darin, einfach etwas in Ihren Anwendungs-Controller zu legen, der die in Rails integrierte Basis-Auth-Unterstützung verwendet (siehe hier: http://railscasts.com/episodes/82-http-basic-authentication) und ihn einfach in eine Bedingung für Ihre Rails.env
einbinden. Beachten Sie, dass bei HEROKU RAILS_ENV standardmäßig auf Produktion eingestellt ist. Sie können dies jedoch für Ihre nicht produktiven Apps ändern, indem Sie heroku config
(http://docs.heroku.com/config-vars) verwenden.
Sie könnten auch eine Rackblock-Middleware im Roadblock-Stil installieren, aber ich würde nur mit dem oben genannten gehen.
Ein sauberere Weg ist, einfach in ein paar Zeilen von Rack-Middleware-Drop in der Staging-Umgebung config Controller-Logik allein lassend:
# config/environments/staging.rb
MyApp::Application.configure do
config.middleware.insert_after(::Rack::Lock, "::Rack::Auth::Basic", "Staging") do |u, p|
[u, p] == ['username', 'password']
end
#... other config
end
Dieser Tipp mit freundlicher Genehmigung von Ole Morten Amundsen. Mehr Infos und Heroku Passwort Spezifikation:
Diese Lösung ist sauberer und macht für mich mehr Sinn, weil sie infrastrukturlos ist. – Juanda
Bitte beachten Sie, dass index.html direkt vom Webserver und nicht von Rack-Rails bereitgestellt wird und somit die index.html-URL nicht geschützt ist. Alles andere, das von Rails bedient wird, wird geschützt. –
Auf Rails4, ich habe "keine solche Middleware einzufügen nach: Rack :: Lock" Fehler. Ersetzen Adams Code an die unten:
# config/environments/staging.rb
MyApp::Application.configure do
config.middleware.use '::Rack::Auth::Basic' do |u, p|
[u, p] == ['username', 'password']
end
# ...
end
See: http://www.intridea.com/blog/2013/6/4/tips-and-tricks-for-deploying-rails-4-apps-on-heroku
bestätigt funktioniert auf Rails 3.2 –
In Rails 5, Middlewares will das eigentliche Modul, anstatt eine Zeichenfolge. 'config.middleware.use :: Rack :: Auth :: Basic' – Frexuz
Es gibt einen schönen Heroku Add-on, verwendet Mozilla Persona für die Authentifizierung. Es ist kostenlos für Low-Volume-Websites (unter 10.000 Authentifizierungen pro Monat):
https://addons.heroku.com/wwwhisper
Sehr einfach zu installieren und zu konfigurieren.
Einverstanden. 2 Benutzer begrenzen ist das einzige mögliche Problem. – freemanoid
nur für uns.Auch Mozilla Persona wurde eingestellt. '' 'Am 30. November 2016 wird Mozilla die Dienste von persona.org herunterfahren. Persona.org und verwandte Domains werden offline genommen. '' ' – Webdevotion
Ein anderer Weg, um es mit dem application_controller.rb zu tun:
# app/controllers/application_controller.rb
before_filter :http_basic_auth
def http_basic_auth
if ENV['HTTP_AUTH'] =~ %r{(.+)\:(.+)}
unless authenticate_with_http_basic { |user, password| user == $1 && password == $2 }
request_http_basic_authentication
end
end
end
und dann müssen Sie Ihre Werte exportieren: für die Entwicklung:
export HTTP_AUTH=test:test
Für Heroku:
heroku config:set HTTP_AUTH=test:test
Jetzt, wenn das Fenster aufgefordert wird, sollten Sie für Benutzer/Passwort eingeben => Test/Test.
Das ist es hoffe, dass Sie es nützlich finden.
- 1. Gibt es eine Möglichkeit, Remote-spezifische .gitignores einzurichten?
- 2. Gibt es eine Möglichkeit, eigene Quellwerkzeuge auf Eclipse einzurichten?
- 3. Gibt es eine Möglichkeit, eine NSCollectionView in Swift programmgesteuert einzurichten?
- 4. Gibt es eine einfache Möglichkeit, eine Verbindungsnaht mit dem Buildsystem von Visual Studio 2010 einzurichten?
- 5. Gibt es eine Möglichkeit, Postgres auf Heroku neu zu starten?
- 6. Gibt es eine Möglichkeit, einen Zweig auf Heroku zu löschen
- 7. Gibt es eine bessere Möglichkeit, ScalaStyle unter IntelliJ einzurichten?
- 8. Gibt es eine einfache Möglichkeit, eine App in eine Komponente einer anderen App zu verwandeln
- 9. Gibt es eine Möglichkeit, eine Standard-App für Heroku Toolbet zu setzen?
- 10. Gibt es eine einfache Möglichkeit, eine vollständige P4-Änderungsliste wiederherzustellen?
- 11. Gibt es eine Möglichkeit, Heroku-Protokolle über HTTP abzurufen?
- 12. Gibt es eine einfache Möglichkeit, eine Tabelle in Prozedur umzubenennen?
- 13. Gibt es eine einfache Möglichkeit, eine QProgressBar anzupassen?
- 14. Gibt es eine Möglichkeit, einen Proxy-Server in meiner Android-App programmgesteuert einzurichten?
- 15. Gibt es eine einfache Histogrammfunktion?
- 16. Gibt es eine einfache Möglichkeit zum Bearbeiten/Ändern einer UILocalNotification
- 17. Gibt es eine Möglichkeit, eine einfache related posts App in django
- 18. Gibt es eine einfache Möglichkeit, mein dotnet Windows Formular auszudrucken?
- 19. Gibt es eine einfache Möglichkeit, Bildabmessungen in Ruby zu erhalten?
- 20. Gibt es eine einfache Möglichkeit, einen Code TextBox zu erstellen?
- 21. Gibt es eine einfache Möglichkeit, Gulture mit Django zu verwenden?
- 22. Gibt es eine einfache Möglichkeit, Mediendateien in .NET abzuspielen?
- 23. Gibt es eine einfache Möglichkeit, TypeScript-Definitionen zu installieren?
- 24. Gibt es eine einfache Möglichkeit, Kriterien in HQL zu konvertieren?
- 25. Gibt es eine einfache Möglichkeit, mit Open MPI zu klingeln?
- 26. Gibt es eine einfache Möglichkeit, jshint mit Netbeans zu integrieren?
- 27. Gibt es eine einfache Möglichkeit, Benutzer von Facebook zu erhalten?
- 28. Gibt es eine einfache Möglichkeit, ein ASP.NET-Formular zu löschen?
- 29. Gibt es eine einfache Möglichkeit, eine Express-App in Meteor zu konvertieren?
- 30. Gibt es eine einfache Möglichkeit, Openshift Autoscaling zu testen?
Es ist besser, Benutzername und Passwort als Heroku Konfigurationsvariablen zu speichern (http://blog.heroku.com/archives/2009/4/7/config-vars/) und Hashed (http: //www.zacharyfox. com/blog/ruby-on-rails/password-hashing), obwohl Authentifizierung nur dann erfolgen sollte, wenn Rails.env == 'production'. – avalez