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 模拟的授权响应访问令牌可能不存在或未正确传递...