使用Ofla2的flask_dance的SSLError

时间:2018-10-24 14:39:54

标签: python python-3.x flask oauth python-requests

我正在尝试使用flask_dance连接到OAuth2-Provider。提供者具有自签名证书。当我直接发送request.post(***, verify=False)时,一切正常。但是,当我使用OAuth2ConsumerBlueprint()中的flask_dance.consumer时,总是会出现以下错误。

requests.exceptions.SSLError
requests.exceptions.SSLError: HTTPSConnectionPool(host='***', port=443): Max retries exceeded with url: /as/token.oauth2 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))

是否可以为从脚本调用的所有请求全局设置verify=false或为整个verify=false设置OAuth2ConsumerBlueprint()。另外一种解决方案是为证书添加例外。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

定义OAuth2ConsumerBlueprint()时,可以设置其他参数,例如在token_url_params中。这样,它将传递给flask_dance请求 从烧瓶进口烧瓶 从flask_dance.consumer导入OAuth2ConsumerBlueprint

app = Flask(__name__)
example_blueprint = OAuth2ConsumerBlueprint(
  "oauth-example", __name__,
  client_id="my-key-here",
  client_secret="my-secret-here",
  base_url="https://oauth-example.com",
  token_url="https://oauth-example.com/login/access_token",
  authorization_url="https://oauth-example.com/login/authorize",
  token_url_params=dict(verify=False)
)
app.register_blueprint(example_blueprint, url_prefix="/login")