繁体   English   中英

Authlib 0.6+不适用于Auth0模拟和Flask

[英]Authlib 0.6+ does not work with Auth0 impersonation and Flask

Auth0模拟直接跳过认证的第一步,直接调用成功认证回调URL。 这引起了一个问题,因为在回调处理中被调用的flask / client / OAuth.authorize_access_token()需要存在会话变量_auth0_callback_但是未设置此变量,因为设置了唯一的位置flask / client在这种情况下,不会调用/OAuth.authorize_redirect()。

我们已经添加了一个技巧来设置_auth0_callback_会话变量(如果在调用flask / client / OAuth.authorize_access_token()之前不存在该变量),但这似乎不正确,我只是想知道我们是否正在这样做有问题。

_auth0_state_会话变量也遇到了类似的问题,但是我现在正在测试的v0.7中可能已经解决了此问题。 我们目前正在生产中使用Authlib v0.6。

用Auth0引发了此问题 ,但没有任何响应。

任何帮助表示赞赏,谢谢

更新中...

从Authlib的更深层看,对于flask/client/OAuth.authorize_access_token()调用,如果令牌包含在授权响应中,并且OAuth2Session.fetch_access_token()不需要回调URL即可获取令牌。在模拟的情况下,感觉访问令牌包含在授权响应中-请参阅OAuth2Session.fetch_access_token()#152 因此,也许来自Auth0模拟的授权响应访问令牌不存在或未正确传递...

根据我的确认,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的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM