2015-01-05 7 views
13

Ich habe einen oauth2-Server und einen oauth2-Client mit Hilfe von flask-oauthlib implementiert.flash-outhlib lokal testen ohne https

Wenn ich versuche, lokal zu testen, gibt der Client einen InsecureTransportError zurück und sagt mir, dass ich https verwenden soll.

Gibt es eine Möglichkeit, die App lokal ohne https zu testen?

Der Client läuft auf 127.0.0.2:5000 und der Server läuft auf 127.0.0.1:5000.

Dank

Antwort

31

Von http://requests-oauthlib.readthedocs.org/en/latest/examples/real_world_example.html:

Sie sollten beachten, dass OAuth2 durch SSL-Schicht arbeitet. Wenn Ihr Server nicht parametrisiert ist, um HTTPS zuzulassen, löst die fetch_token-Methode eine oauthlib.oauth2.rfc6749.errors.InsecureTransportError aus. Die meisten Leute setzen beim Testen SSL nicht auf ihren Server und das ist in Ordnung. Sie können diese Überprüfung auf zwei Arten deaktivieren:

  1. Durch Festlegen einer Umgebungsvariablen.
export OAUTHLIB_INSECURE_TRANSPORT=1 
  1. Entspricht oben Sie dies in Python festlegen können (wenn Sie Probleme haben, Umgebungsvariablen)
# Somewhere in webapp_example.py, before the app.run for example 
import os 
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' 
+0

Dank. Funktioniert perfekt. – user2483431

+3

toll, es wäre schön, wenn Sie dann die Antwort akzeptieren :-) –

+0

Nur ein Kommentar, der gleiche Fehler, sowie die gleiche Lösung kann passieren, wenn Sie auf gunicorn mit nginx die SSL-Beendigung tun. Diese Lösung behebt das Problem, dass die Bibliothek irgendwie falsch auf http ist ... – mgmonteleone

5

Für OAuth1 können Sie die Einstellung

hinzufügen

Für OAuth2 können Sie in Umgebungsvariable festlegen.

export OAUTHLIB_INSECURE_TRANSPORT=1 

oder in Runtime

import os 
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' 
Verwandte Themen