web-dev-qa-db-fra.com

Test de flask-oauthlib localement sans https

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

35
user2483431

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:

  1. En définissant une variable d'environnement.
export OAUTHLIB_INSECURE_TRANSPORT=1
  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'
73
Hans Z.

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'
20

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.

2
Leogout