在没有https的情况下在本地测试flask-oauthlib

时间:2015-01-05 18:12:30

标签: flask oauth-2.0 flask-oauthlib

我使用flask-oauthlib实现了oauth2服务器和oauth2客户端。

当我尝试在本地测试时,客户端返回InsecureTransportError并告诉我应该使用https。

有没有办法在没有https的情况下在本地测试应用程序?

客户端在127.0.0.2:5000上运行,服务器在127.0.0.1:5000上运行。

由于

3 个答案:

答案 0 :(得分:60)

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

  

您应该注意Oauth2通过SSL层工作。如果您的服务器是   没有参数化以允许HTTPS,fetch_token方法将引发一个   oauthlib.oauth2.rfc6749.errors.InsecureTransportError。大多数人   测试时不要在服务器上设置SSL,这很好。您可以   以两种方式禁用此检查:

     
      
  1. 通过设置环境变量。
  2.   
export OAUTHLIB_INSECURE_TRANSPORT=1
  
      
  1. 与上述相同,您可以在Python中设置此项(如果您在设置环境变量时遇到问题)
  2.   
# Somewhere in webapp_example.py, before the app.run for example
import os 
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

答案 1 :(得分:17)

对于OAuth1,您可以添加设置

app.config.update({
    'OAUTH1_PROVIDER_ENFORCE_SSL': False
})

对于OAuth2,您可以设置环境变量。

export OAUTHLIB_INSECURE_TRANSPORT=1

或在运行时

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

答案 2 :(得分:0)

对于Authlib使用者

export AUTHLIB_INSECURE_TRANSPORT=1

或者如果您要通过编程方式进行设置

# Somewhere in webapp_example.py, before the app.run for example
import os 
os.environ['AUTHLIB_INSECURE_TRANSPORT'] = '1'

我知道它没有回答问题,但是每次我问Google时,我都会进入该页面。