J'ai implémenté un serveur oauth2 et un client oauth2 en utilisant flask-oauthlib.
Lorsque j'essaie de tester localement, le client renvoie une InsecureTransportError et me dit que je devrais utiliser https.
Existe-t-il un moyen de tester l'application localement sans https?
Le client s'exécute sur 127.0.0.2:5000 et le serveur s'exécute sur 127.0.0.1:5000.
Merci
De http://requests-oauthlib.readthedocs.org/en/latest/examples/real_world_example.html :
Vous devez noter que Oauth2 fonctionne via la couche SSL. Si votre serveur n'est pas paramétré pour autoriser HTTPS, la méthode fetch_token déclenchera un oauthlib.oauth2.rfc6749.errors.InsecureTransportError. La plupart des gens ne configurent pas SSL sur leur serveur pendant les tests et c'est très bien. Vous pouvez désactiver cette vérification de deux manières:
- En définissant une variable d'environnement.
export OAUTHLIB_INSECURE_TRANSPORT=1
- Équivalent à ci-dessus, vous pouvez définir cela dans Python (si vous avez des problèmes pour définir les variables d'environnement)
# Somewhere in webapp_example.py, before the app.run for example
import os
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
Pour OAuth1, vous pouvez ajouter un paramètre
app.config.update({
'OAUTH1_PROVIDER_ENFORCE_SSL': False
})
Pour OAuth2, vous pouvez définir une variable d'environnement.
export OAUTHLIB_INSECURE_TRANSPORT=1
ou en exécution
import os
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
Pour les utilisations Authlib:
export AUTHLIB_INSECURE_TRANSPORT=1
Ou si vous souhaitez le définir par programme:
# Somewhere in webapp_example.py, before the app.run for example
import os
os.environ['AUTHLIB_INSECURE_TRANSPORT'] = '1'
Je sais que cela ne répond pas à la question, mais chaque fois que je pose des questions à Google, j'atterris sur cette page.