Flask 烧瓶应用程序的Authlib获取参数错误

Flask 烧瓶应用程序的Authlib获取参数错误,flask,authlib,untappd,Flask,Authlib,Untappd,我正在使用Authlib模块测试OAuth2集成。我制作了一个简单的Flask应用程序,并尝试使用Untappd API()进行授权 按照Authlib Flask模块()的指导原则,我成功地重定向并获得授权代码 authorize\u redirect()将我重定向到Untappd授权我的应用程序后,我批准,将我发送到我的回调url,url中带有验证码 http://localhost:3000/callback?code=1B6D5B8154EC6627748001F&state=G

我正在使用Authlib模块测试OAuth2集成。我制作了一个简单的Flask应用程序,并尝试使用Untappd API()进行授权

按照Authlib Flask模块()的指导原则,我成功地重定向并获得授权代码

authorize\u redirect()
将我重定向到Untappd授权我的应用程序后,我批准,将我发送到我的回调url,url中带有验证码

http://localhost:3000/callback?code=1B6D5B8154EC6627748001F&state=GwqinEMqcRDSjfKmNHh
我应该能够下一次调用
authorize\u access\u token()
来获取令牌,但我得到的是:

{'meta': {'http_code': 500, 'error_type': 'param_error', 'error_detail': 'Missing either the client_id, redirect_url, client_secret or code parameter. Please check your request a try again.'}, 'response': []}
我已经在authlib的配置中注册了client\u id、redirect\u url、client\u secret,所以我不知道缺少了什么。使用授权码我在邮递员处进行了测试,并成功地收到了一个令牌

  GET  https://untappd.com/oauth/authorize/?client_id=CLIENTID&client_secret=CLIENTSECRET&response_type=code&redirect_url=REDIRECT_URL&code=CODE

{"meta":{"http_code":200},"access_token":"k43l4j3lj43lj43","response":{"access_token":"k43l4j3lj43lj43"}}
那么我的代码怎么了?:

auth0 = oauth.register(
    'auth0',
    client_id=AUTH0_CLIENT_ID,
    client_secret=AUTH0_CLIENT_SECRET,
    api_base_url=AUTH0_BASE_URL,
    access_token_url=AUTH0_BASE_URL + '/oauth/authorize',
    authorize_url=AUTH0_BASE_URL + '/oauth/authenticate',
)


@auth_blueprint.route('/login')
def login():
    redirect_uri = url_for('.callback', _external=True)
    return auth0.authorize_redirect(redirect_uri)


@auth_blueprint.route('/callback')
def callback():
    token = auth0.authorize_access_token()
    print(token)
    return redirect('/loggedin')
我能想到的唯一一件事是授权代码没有在重定向中传递,但我无法调试它。在我看来,Authlib中幕后发生的事情并没有得到很好的记录

更新 我想运行
print(auth0.\u dict\uuuu)
看看是否可以看到缺少的参数

{'name': 'auth0', 'client_id': '2226808DCDAF2FA5FFE145A', 'client_secret': '9494F1877AB0D01D9DE6AAF4', 'request_token_url': None, 'request_token_params': None, 'access_token_url': 'https://untappd.com/oauth/authorize', 'access_token_params': None, 'authorize_url': 'https://untappd.com/oauth/authenticate', 'authorize_params': None, 'api_base_url': 'https://untappd.com', 'client_kwargs': {}, 'oauth1_client_cls': None, 'oauth2_client_cls': <class 'authlib.integrations.requests_client.oauth2_session.OAuth2Session'>, 'compliance_fix': None, 'client_auth_methods': None, '_fetch_token': None, '_update_token': None, '_server_metadata_url': None, 'server_metadata': {'refresh_token_url': None, 'refresh_token_params': None}, '_fetch_request_token': None, '_save_request_token': None}
{'name':'auth0','client_id':'2226808DCDAF2FA5FFE145A','client_secret':'9494F1877AB0D01D9DE6AAF4','request_token_url':无,'request_token_params':无,'access_token_url':'https://untappd.com/oauth/authorize“,“访问令牌参数”:无,“授权url”:”https://untappd.com/oauth/authenticate“,“authorize_params”:无,“api_base_url”:'https://untappd.com“,”client_kwargs':{},“'oauth1_client_cls':无,“'oauth2_client_cls':,”compliance_fix':无,“'client_auth_methods':无,“'fetch_token':无,'update_token':无,'server_metadata':{'refresh_token_url':无,'refresh_token参数:无}”,“\u获取\u请求\u令牌”:无,“\u保存\u请求\u令牌”:无}
(身份证和秘密不真实)
我看不到任何不应该存在的东西。

我也开始沿着这条路走,所以我没有什么可以提供的

但我知道的一件事是Untappd对通用的用户代理字符串很挑剔。试着克服它。也许邮递员也做了同样的事情

在我的代码中,我添加了这个,所有这些都很好地工作
oauth.headers[“User Agent”]=“GiveMeBeer”

从回调路由调用时,auth0对象似乎缺少参数。您能否遵循以下代码:这是个谜。该示例与我所做的基本相同。刚刚想到了打印(auth0.\uu dict\uuuuuuuuu)查看有哪些值。将使用该信息进行更新。我有一个非常类似的问题,但我能够看到KeyClope端发生了什么。Flask的Authlib没有传递所需的
重定向uri
参数。