Django OAuth Toolkit:为 Django 项目接入 OAuth2 认证的标准方案

做 Django 开发的,迟早要面对一个问题:自己的 Web API 需要接入 OAuth2 认证。自己从头实现?RFC 6749 规范几百页,踩坑成本太高。用第三方服务?灵活性又受限。

Django OAuth Toolkit(简称 DOT)就是专门解决这个问题的。目前它在 GitHub 上有 3327 颗星,属于 Jazzband 社区维护的项目。它的核心逻辑基于 OAuthLib 实现,所有端点都符合 RFC 标准。

正文顶部截图

它能做什么

DOT 做的事情很明确:让你用最少的代码,在 Django 项目里跑起一个完整的 OAuth2 授权服务器。

安装只需要一行命令:

pip install django-oauth-toolkit

再把 oauth2_provider 加入 INSTALLED_APPS,配置路由:

from oauth2_provider import urls as oauth2_urls

urlpatterns = [
    path('o/', include(oauth2_urls)),
]

所有授权端点、token 管理、数据模型就都准备好了。不用手动写认证逻辑,也不用自己维护 token 表。支持授权码模式、密码模式、客户端模式等主流 OAuth2 流程。

兼容性和社区维护

项目支持 Python 3.10 到 3.14、Django 4.2 到 6.0,覆盖了目前主流版本组合。配套的 oauthlib 依赖要求 3.2.2 以上版本。

DOT 由 Jazzband 社区维护,这是一个专注 Django 开源项目的组织。社区持续招募贡献者,任何人都可以提交 PR 或参与 code review。对 OAuth2 熟悉的开发者还可以申请成为 maintainer。项目的议题和 PR 管理都比较活跃,响应速度在社区驱动的项目里算不错的。

README区域截图

适用场景

对于大多数 Django API 项目,DOT 是接入 OAuth2 比较稳妥的选择。项目经过多年迭代,文档托管在 Read the Docs 上,内容比较完整。遇到问题可以在 GitHub Discussions 里提问,社区会有回应。

如果你需要自己管理 token、控制授权流程,DOT 的灵活性和规范程度都很好。如果需求比较简单,比如只做第三方登录,可以考虑 social-auth-app-django 这类更轻量的方案。

许可证

项目采用 BSD 协议,对商业使用友好。安全相关问题可以通过专用邮箱报告,不适合在公开议题中讨论的问题有独立处理渠道。

对商业使用友好。安全相关问题可以通过专用邮箱报告,不适合在公开议题中讨论的问题有独立处理渠道。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐