我正在尝试使用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()
。另外一种解决方案是为证书添加例外。任何帮助表示赞赏。
答案 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")