Python authlib.integrations.base_client.errors.MismatchingStateError
正在尝试使用客户端获取的令牌Python authlib.integrations.base_client.errors.MismatchingStateError,python,authlib,Python,Authlib,正在尝试使用客户端获取的令牌 baseurl='https://sim-api.tradestation.com/v2' oauth.register( name='tradestation', client_id=api_key, client_secret=api_secret, access_token_url=baseurl+'/security/authorize', access_token_params={ 'grant_type': 'a
baseurl='https://sim-api.tradestation.com/v2'
oauth.register(
name='tradestation',
client_id=api_key,
client_secret=api_secret,
access_token_url=baseurl+'/security/authorize',
access_token_params={ 'grant_type': 'authorization_code' },
authorize_url=baseurl+'/authorize',
authorize_params=None,
api_base_url=baseurl,
client_kwargs={
'scope': 'marketdata', # ,trade — for later
'response_type': 'code',
'token_endpoint_auth_method': 'client_secret_post',
},
)
@app.route('/authorize')
def authorize():
print(flask.request.args.get('state'), flask.session.get('_tradestation_authlib_state_'))
token = oauth.tradestation.authorize_access_token()
登录部分工作正常,我被重定向到tradestation登录页面,在输入凭据后,我被重定向到localhost。在烧瓶输出中,我看到:
GET /authorize?code=<long_code> HTTP/1.1
我在这里注册的参数有误吗?我还没有找到token\u endpoint\u auth\u方法,我也找不到其他参数有任何错误。用黑客的方式,我最终得到了token:) 因此,遭受相同检查的人可以使用这种快速而肮脏的方法来运行它,但authlib开发人员可能会提供更好的解决方案
None c3GjcENWIe7Qg3FdQNYn1iSCuU1jZC
state=flask.session.get('_tradestation_authlib_state_')
flask.request.args=ImmutableMultiDict({**flask.request.args, 'state': state})