我使用flask-oauthlib实现了oauth2服务器和oauth2客户端。
当我尝试在本地测试时,客户端返回InsecureTransportError并告诉我应该使用https。
有没有办法在没有https的情况下在本地测试应用程序?
客户端在127.0.0.2:5000上运行,服务器在127.0.0.1:5000上运行。
由于
答案 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,这很好。您可以 以两种方式禁用此检查:
- 通过设置环境变量。
醇>
export OAUTHLIB_INSECURE_TRANSPORT=1
- 与上述相同,您可以在Python中设置此项(如果您在设置环境变量时遇到问题)
醇>
# 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)
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时,我都会进入该页面。