我已经使用flask-oauthlib 实现了一个oauth2 服务器和一个oauth2 客户端。
当我尝试在本地进行测试时,客户端返回一个 InsecureTransportError 并告诉我应该使用 https。
有没有办法在没有 https 的情况下在本地测试应用程序?
客户端在 127.0.0.2:5000 上运行,服务器在 127.0.0.1:5000 上运行。
谢谢
我已经使用flask-oauthlib 实现了一个oauth2 服务器和一个oauth2 客户端。
当我尝试在本地进行测试时,客户端返回一个 InsecureTransportError 并告诉我应该使用 https。
有没有办法在没有 https 的情况下在本地测试应用程序?
客户端在 127.0.0.2:5000 上运行,服务器在 127.0.0.1:5000 上运行。
谢谢
来自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'
对于 OAuth1,您可以添加设置
app.config.update({
'OAUTH1_PROVIDER_ENFORCE_SSL': False
})
对于 OAuth2,您可以在环境变量中进行设置。
export OAUTHLIB_INSECURE_TRANSPORT=1
或在运行时
import os
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
对于 Authlib 用户:
export AUTHLIB_INSECURE_TRANSPORT=1
或者,如果您想以编程方式设置它:
import os
os.environ['AUTHLIB_INSECURE_TRANSPORT'] = '1'
我知道它没有回答这个问题,但每次我向谷歌询问它时,我都会进入这个页面。