首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成python-social-auth (social-app- Django ),用于Django管理

集成python-social-auth (social-app- Django ),用于Django管理
EN

Stack Overflow用户
提问于 2017-04-06 05:55:57
回答 1查看 1.3K关注 0票数 4

我想创建一个应用程序,使用django管理,但允许登录通过谷歌(我的公司谷歌帐户)代替django默认的ModelAdmin。

目前看来,社交应用-django (google)是可行的方法,但是在安装和安装了一个项目之后,我还不清楚如何允许django管理员登录使用社交应用-django身份验证。我尝试像这里描述的那样配置我的项目,但是还不清楚如何将它集成到django管理程序中。

我找到了这个斯皮蒂 (它似乎过时了),并添加了它,但当我尝试去/admin/时得到一个404。

页面找不到(404)请求方法: GET请求URL:http://127.0.0.1:8000/accounts/login/?next=/admin/login/%3Fnext%3D/admin/使用在telos.urls中定义的URLconf,Django尝试了这些URL模式,顺序是:^login/(?P^/+)/$ name='begin‘^/$/(?P^/+)/$ name='complete’^disconnect/(?P^/+)/$ name='disconnect‘^disconnect/(?P^/+)/(?P^/+)/$ name=’disconnect_didn‘^^/admin/当前路径、帐户/登录/与其中任何一个都不匹配。

如果删除片段,/admin/将重定向到/admin/login/,在登录尝试时返回错误文本:

请为职员帐户输入正确的用户名和密码。请注意,这两个字段都可能区分大小写。

除了配置之外,我还在settings.py中添加了以下内容

项目/Models.py (MyUser)

代码语言:javascript
复制
from django.contrib.auth.models import AbstractUser

class MyUser(AbstractUser):
    pass

settings.py

代码语言:javascript
复制
# for identification of SOCIAL_AUTH_USER
# http://python-social-auth.readthedocs.io/en/latest/configuration/settings.html#user-model
SOCIAL_AUTH_USER_MODEL = 'projects.MyUser'
AUTH_USER_MODEL = 'projects.MyUser'  # not sure if this is needed

有人能告诉我如何设置我的项目,让我通过社交应用-django (谷歌)登录到django管理吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-07 12:13:29

Django Admin使用auth控制应用程序,因此任何身份验证过程都会触发与登录到非管理部分的用户相同的机制,如果在AUTHENTICATION_BACKENDS设置中定义了它们,则将由python-social-auth后端进行处理。

为了使它发挥作用,您需要:

  1. 向登录表单添加Login with Google链接(链接到/login/google-oauth2)。可以通过添加管理/login.html模板或定义自定义AdminSite来覆盖默认登录表单。
  2. 确保用户被标记为is_staff,否则将禁止对管理员的访问。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43246790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档