HTTP auf HTTPS auf Flask + Heroku umleiten

7

Wenn ich versuche, eingehenden Verkehr zu https umzuleiten, bekomme ich eine unendliche Umleitungsschleife.

%Vor%

Die request.url wird nie in das Präfix https geändert. Ich möchte Herokus Huckepack-SSL verwenden, um die Kosten zu minimieren.

    
The Internet 27.02.2013, 15:47
quelle

5 Antworten

6

Auf Heroku wird SSL (https) beendet, bevor es Ihre Anwendung erreicht. Ihre App sieht also keinen SSL-Datenverkehr. Um zu prüfen, ob eine Anfrage mit https gestellt wurde, müssen Sie stattdessen den Header x-forwarded-proto prüfen. Weitere Informationen finden Sie hier: Wie wird Python nur auf Heroku https erstellt? >

UPDATE: Zu Ihrer Verwendung sollten Sie einfach request.url nach "myapp.herokuapp.com/checkout/" überprüfen; und vergewissern Sie sich, dass die Kopfzeile "https"

ist     
friism 27.02.2013, 16:08
quelle
10

1) "pip install flask-sslify" installieren

(Github ist hier: Ссылка )

2) Fügen Sie die folgenden Zeilen ein:

%Vor%     
Ryan 03.03.2014 02:23
quelle
4

Ich habe SSLify, url_for _scheme und ein PREFERRED_URL_SCHEME versucht; aber keiner hat geklappt, zumindest bei Release-Level .. (funktionierte gut lokal) Dann dachte ich;

%Vor%

Dies ist im Wesentlichen eine andere Möglichkeit, ohne Konfigurationen oder Erweiterungen fertig zu werden.

    
Miles 13.03.2015 07:11
quelle
0

Ich konnte den flask-sslify-Code für eine einzelne Ansicht verwenden. Nur benötigt, um zu überprüfen, ob die Anfrage mit SSL gemacht wurde oder nicht, und der Antwort korrekte Header hinzuzufügen. Ссылка

%Vor%     
The Internet 27.02.2013 17:26
quelle
0

Sie müssen nur den Header X-Forwarded-Proto überprüfen. Wenn der Wert false lautet, leiten Sie die URL zur entsprechenden https-URL um.

Hier der Code, um https für alle Anrufe in einer flask-App zu erzwingen, die auf heroku läuft:

%Vor%     
Aditya Bansal 15.02.2018 12:16
quelle

Tags und Links