一个django应用程序,通过委派给oauth2提供者来替换django admin认证机制。
项目描述
django-admin-oauth2
一个django应用程序,通过委派给oauth2提供者来替换django admin认证机制。
支持
django-admin-oauth2应支持Python 2.7 & Python 3.6至3.11,pypy,以及Django 1.6至4版本。
安装
步骤1: pip install django-admin-oauth2
并将其包含在项目的需求中
步骤2:在项目的urls.py中包含django-admin-oauth2 urlconf
Django 1.x
url(r'/admin/oauth/', include('oauthadmin.urls'))
Django >= 2.0
re_path(r'/admin/oauth/', include('oauthadmin.urls'))
步骤3:在INSTALLED_APPS中包含oauthadmin
INSTALLED_APPS = (
'oauthadmin'
)
步骤4:在项目的settings.py中安装中间件
MIDDLEWARE_CLASSES = (
'oauthadmin.middleware.OauthAdminSessionMiddleware'
)
确保这位于'django.contrib.sessions.middleware.SessionMiddleware'之后
步骤5:设置所有正确的选项(以下为可用选项)
设置
- OAUTHADMIN_GET_USER:这是一个函数,它接收oauth令牌并返回与当前登录用户对应的django.auth.models.User模型。您可以对此用户对象设置权限等。
- OAUTHADMIN_CLIENT_ID:您的OAuth客户端ID
- OAUTHADMIN_CLIENT_SECRET:OAuth客户端密钥
- OAUTHADMIN_BASE_URL:所有与OAuth相关的查询的着陆点。
- OAUTHADMIN_AUTH_URL:OAuth提供者URL
- OAUTHADMIN_TOKEN_URL:OAuth承载令牌提供者URL
- OAuth管理员_PING_INTERVAL(可选,默认为300):ping请求之间的最小秒数
- OAuth管理员_PING:(可选,默认为None)此可选函数接受一个OAuth令牌,如果它仍然有效则返回True,如果它不再有效(如果他们已从OAuth服务器登出)则返回False
- OAuth管理员_DEFAULT_NEXT_URL:(可选,默认为/admin)。此可选值是OAuth登录过程成功后您将到达的默认页面。
- OAuth管理员_SCOPE:(可选,默认为['default')。这是一组授权范围。
测试
如果您想测试此应用程序,请运行以下Makefile
命令
make test
注意
当CSRF验证令牌不匹配时,django-admin-oauth2将重定向回登录URL,以便它可以重试授权步骤。有时人们会使用过时的CSRF状态字符串将OAuth服务器添加到书签,这比显示错误页面要好。
变更日志
- 1.3.0:添加对
JSONSerializer
的支持 - 1.2.1:添加对django 4的支持,同时保留与Django 1.x的后向兼容性
- 1.2.0:允许使用新参数OAUTHADMIN_SCOP覆盖OAuth范围
- 1.1.3:修复adminsite中的错误(制表符与空格)
- 1.1.2:添加对django 2的支持
- 1.1.1:修复新设置未读取的错误
- 1.1.0:添加新设置:OAUTHADMIN_DEFAULT_NEXT_URL
- 1.0.2:支持python3
- 1.0.1:在交换授权代码以获取auth令牌时发送重定向URI
- 1.0.0:添加对django 1.8、1.9和1.10的支持。停止支持python 2.6。添加对python 3.5的支持。将测试套件更新为使用tox运行。
- 0.2.6:在OAuth流程中回传原始URL,以便在授权过程完成后可以访问请求的URL。感谢@igorsobreira。
- 0.2.5:修复了失败的ping不会立即使会话无效的错误,仅在第二次请求时才会无效。
- 0.2.4:如果授权无效,则重定向到登录页面
- 0.2.3:如果状态不匹配,则重定向到登录页面
- 0.2.2:如果状态丢失(有时人们会将登录URL添加到书签),则重定向到登录页面
- 0.2.1:添加了ping函数的测试,并修复了ping时间戳会话变量名称的错误
- 0.2.0:添加了对ping认证服务器以确保令牌仍然有效的支持
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
django-admin-oauth2-1.3.1.tar.gz (7.7 kB 查看散列值)