【问题标题】:Testing flask-oauthlib locally without https在没有 https 的情况下在本地测试 flask-oauthlib
【发布时间】:2015-03-03 08:03:40
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: flask oauth-2.0 flask-oauthlib


    【解决方案1】:

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

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

    1. 通过设置环境变量。
    export OAUTHLIB_INSECURE_TRANSPORT=1
    
    1. 相当于上面你可以在 Python 中设置这个(如果你在设置环境变量时遇到问题)
    # Somewhere in webapp_example.py, before the app.run for example
    import os 
    os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
    

    【讨论】:

    • 只是一个评论,同样的错误,以及同样的解决方案在使用 nginx 进行 SSL 终止的 gunicorn 上运行时可能会发生。此解决方案解决了库以某种方式错误地将其放在 http... 上的问题
    • 感谢您的提示。你知道requests_oauthlib 是否应该使用自签名证书?使用一个后,我仍然遇到不安全的传输错误。我想知道这是正常的还是我遗漏了什么。
    • 另外,你知道If your server is not parametrized to allow HTTPS是什么意思吗?这与仅使用自签名证书运行我的应用程序有什么不同吗?
    • 当代码显示 AUTHLIB... 时,为什么所有答案都显示 OAUTHLIB_INSERCURE_TRANSPORTgithub.com/lepture/authlib/blob/…
    • 可以使用环境变量自定义 OAuthLib 中的一些安全设置。您可以使用它绕过 OAuthLib 的一些安全检查,以便运行自动化测试。切勿在生产环境中绕过这些检查。
    【解决方案2】:

    对于 OAuth1,您可以添加设置

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

    对于 OAuth2,您可以在环境变量中进行设置。

    export OAUTHLIB_INSECURE_TRANSPORT=1
    

    或在运行时

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

    【讨论】:

      【解决方案3】:

      对于 Authlib 用户:

      export AUTHLIB_INSECURE_TRANSPORT=1
      

      或者如果你想以编程方式设置它:

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

      我知道它没有回答问题,但每次我向 Google 询问它时,我都会访问此页面。

      【讨论】:

        猜你喜欢
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 2020-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-09
        • 2014-12-26
        相关资源
        最近更新 更多