Python:OAuth 库 [关闭]
Posted
技术标签:
【中文标题】Python:OAuth 库 [关闭]【英文标题】:Python: OAuth Library [closed] 【发布时间】:2010-12-12 14:12:04 【问题描述】:是否有用于 oauth 的完整的 Python 库?我还没有找到任何可以在 oauth 令牌过期后处理重新颁发的方法(Yahoo OAuth flow 上的第 5 步)。
那么什么是最完整的呢?我尝试了来自oauth.net 的那个,它不处理oauth_session_handle
,如果端点返回它(就像雅虎那样),oauth 规范说这是必需的。
那么,我应该使用什么库?都是不完整的,我必须自己做吗?
【问题讨论】:
我构建了一个包,让它变得超级简单和活泼github.com/evansmwendwa/python-socialite 【参考方案1】:对这个 9 岁的问题的另一个答案。以下是 OAuth 2.0 和 OpenID Connect 的库以及用 Python 编写的示例实现。请注意,他们使用Authlete 作为后端服务。
-
authlete-python : Python 库 (GitHub, PyPI)
authlete-python-django : Django (GitHub, PyPI) 的库
django-oauth-server:授权服务器的示例实现
django-resource-server:资源服务器的示例实现
这个问题是在 2009 年发布的。从那时起,已经制定了许多重要的规范。以下是一些例子。
2012 年 10 月 - RFC 6749,OAuth 2.0 授权框架 2012 年 10 月 - RFC 6750,OAuth 2.0 授权框架:不记名令牌使用 2014 年 11 月 - OpenID Connect Core 1.0 2014 年 11 月 - OpenID Connect Discovery 1.0 2014 年 11 月 - OpenID Connect Dynamic Client Registration 1.0 2015 年 9 月 - RFC 7636,OAuth 公共客户端代码交换的证明密钥 2018 年 10 月 - 金融级 API (FAPI) 实施者草案 2 (Part 1, Part 2) 2019 年 2 月 - OpenID Connect 客户端启动反向通道身份验证流程 - Core 1.0 2019 年 8 月 - RFC 8628,OAuth 2.0 设备授权授权 (草稿)-OAuth 2.0 Mutual TLS Client Authentication and Certificate-Bound Access Tokens现在与 OAuth 2.0 和 OpenID Connect 相关的规范数量庞大,成熟的实施很少见。例如,在撰写本文时(2019 年 8 月 20 日),certified OpenID Provider implementations that support Financial-grade API (FAPI) 的数量只有 4 个。另外,支持 Basic OP、Implicit OP、Hybrid OP、Config OP、Dynamic OP 的 certified OpenID Provider implementations 的数量Form Post OP 为 5。(Authlete 是两者中唯一包含的实现)
以下是 OAuth 2.0 实施的一些注意事项:
-
RFC 7636 支持(对安全很重要)
OpenID Connect 支持(或仅支持 OAuth 2.0?)
金融级 API (FAPI) 支持,如果您需要更高的安全性。有关技术详情,请参阅“Financial-grade API (FAPI), explained by an implementer”。
【讨论】:
【参考方案2】:OAuth官网推荐rauth和oauthlib。引用他们关于 rauth 的内容:
Max Countryman 维护 rauth,它被认为是 Python 的 OAuth 的最新且经过单元测试的实现。
关于oauthlib:
另一个很棒的库是 OAuthlib,它实现了最新的 RFC,包括客户端和服务器。
更新日期:2019 年 2 月 9 日
OAuth recommended libs for Python 中仍然提到了这两个库,但是查看他们的 Github 页面,oauthlib 得到了更频繁的维护。
【讨论】:
【参考方案3】:Rauth 就我而言是新的最佳答案。包装 requests 库,并且维护良好。
【讨论】:
【参考方案4】:使用 Kenneth Reitz 很棒的 requests 库以及链接到 http://docs.python-requests.org/en/latest/community/out-there/ 的 requests-oauth 插件
【讨论】:
【参考方案5】:在GitHub 上查看 Mike Knapp 的图书馆。 美观又简单,无需安装。并且适用于 Google App Engine。
【讨论】:
【参考方案6】:我认为 Leah Culver 的 python-oauth(您已经找到)是最好的起点,尽管它并不完整。
Leah 在 github 上有一个镜像,可以方便协作:http://github.com/leah/python-oauth/tree/master/oauth/
更新:目前看来,SimpleGeo 的python-oauth2 是最好的起点。
【讨论】:
谢谢。我分叉了她的回购,正在等待拉取请求。 github.com/ptarjan/python-oauth 感谢您的加入!对我也有帮助,因为我将它用于多个项目 - 非常感谢! 自上次更新以来有什么新内容要报告吗? 我喜欢 Requests 库。我想知道是否有一个非官方的标准库,相当流行的库。 任何正在寻找现代和更新库的人都可以查看 Authlib:authlib.org以上是关于Python:OAuth 库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
是否已经有适用于 Java/Android 的 OAuth2 库? [关闭]
使用 OAuth 和 javascript 的应用程序 [关闭]