一个通用的、符合规范的、全面的 Python 3.8+ OAuth 请求签名逻辑实现
OAuth 常常显得复杂且难以实现。市面上有许多优秀的库用于处理 OAuth 请求,但它们都存在以下一个或两个问题:
- 它们早于 OAuth 1.0 规范(也称 RFC 5849)
- 它们早于 OAuth 2.0 规范(也称 RFC 6749)
- 它们假定使用特定的 HTTP 请求库。
OAuthLib 是一个框架,它实现了 OAuth1 或 OAuth2 的逻辑,而无需假定特定的 HTTP 请求对象或 Web 框架。使用它可以将 OAuth 客户端支持集成到您喜欢的 HTTP 库中,或为您的 Web 框架提供支持。如果您是这类库的维护者,只需在 OAuthLib 之上构建一个薄壳,就能以很小的代价获得 OAuth 支持。
完整的文档可在 Read the Docs 上找到。非常欢迎所有贡献!文档仍然很 sparse,请提交 issue 反映您想了解的内容,或在我们的 Gitter 社区中讨论,或者更好的是,发送一个 pull request!
那么您可能更感兴趣使用 requests,它通过 requests-oauthlib 库提供了由 OAuthLib 支持的 OAuth 功能。
以下包通过 OAuthLib 提供 OAuth 支持:
- 对于 Django,有: - django-oauth-toolkit,它包括 Django REST framework 支持。 - django-allauth,它包括 Django REST framework 以及 Django Ninja 支持。
- 对于 Flask,有 flask-oauthlib 和 Flask-Dance。
- 对于 Pyramid,有 pyramid-oauthlib。
- 对于 Bottle,有 bottle-oauthlib。
如果您编写了支持您喜爱框架的 OAuthLib 包,请提交一个 Pull Request 来更新文档。
正在为 HTTP 请求框架打补丁以支持 OAuth?为 Web 框架创建 OAuth 提供商扩展?仅仅是使用 OAuthLib 来完成任务或学习?
无论您是哪种情况,我们都非常乐意在我们的 Gitter 社区听到您的声音;如果您有任何想改进、更改或评论的内容,请毫不犹豫地发送 pull request 或打开 issue。我们可能比较忙,回复可能稍慢,但我们热爱反馈!
您很可能遇到了某个恼人的问题,并希望有相关文档,如果您想获得永恒的名声和荣耀,并且我们有幸相遇时能请您喝一杯,请发送一个文档 pull request =)
OAuthLib 允许您根据 BSD-3-Clause 许可证的条款使用和滥用。请查看 LICENSE 文件以获取完整详细信息。
OAuthLib 由 Idan Gazit 和其他优秀的 作者 多年来启动和维护。感谢他们出色的工作,才使得这个开源的 社区创作成为可能,并使项目能够保持活跃并响应用户的请求。
OAuthLib 正在积极开发中,OAuth1 和 OAuth2 的核心都已完成,包括提供商和客户端。 详情请参阅 支持的功能。
如需完整的变更日志,请参阅 CHANGELOG.rst。