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 库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

什么是最好的 OAuth2 C# 库? [关闭]

是否已经有适用于 Java/Android 的 OAuth2 库? [关闭]

是否有节点 OAuth 服务器实现 [关闭]

使用 OAuth 和 javascript 的应用程序 [关闭]

使用 OAuth 和 javascript 的应用程序 [关闭]

需要 OAuth 令牌的单元测试 API [关闭]