0

Auth0 模拟直接调用认证成功回调 URL 跳过认证的初始步骤。这会导致问题,因为作为回调处理的一部分调用的 flask/client/OAuth.authorize_access_token() 需要存在 session 变量_auth0_callback_,但该变量未设置,因为它设置的唯一位置是 flask/client/在这种情况下不调用 OAuth.authorize_redirect()。

如果在调用 flask/client/OAuth.authorize_access_token() 之前它不存在,我们添加了一个 hack 来设置_auth0_callback_会话变量,但这似乎不正确,我只是想知道我们是否正在做某事错误的。

我们在_auth0_state_session 变量方面也遇到了类似的问题,但这可能已在我正在测试的 v0.7 中得到修复。我们目前在生产中使用 Authlib v0.6。

已向 Auth0提出此问题,但未收到任何回复。

任何帮助表示赞赏,谢谢

更新...

深入研究 Authlib 看起来,如果令牌包含在授权响应中,则flask/client/OAuth.authorize_access_token()调用回调 URL 不需要OAuth2Session.fetch_access_token()获取令牌,并且在这种情况下访问令牌包含在授权响应中是有道理的模拟 - 请参阅OAuth2Session.fetch_access_token()#152。因此,来自 Auth0 模拟的授权响应访问令牌可能不存在或未正确传递...

4

1 回答 1

1

据我所知,Auth0 接受一个 redirect_uri 参数。检查这个例子:https ://github.com/lepture/auth0-python-web-app/blob/patch-1/01-Login/server.py


Flask 集成是 OAuth2Session 的包装器,它提供了自动为您处理所有内容的方法authorize_redirectauthorize_access_token如果您发现高级集成无法满足您的需求,您可以随时使用 OAuthClient 的方法。

于 2018-05-15T04:50:36.230 回答