我想创建一个应用程序,使用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)
from django.contrib.auth.models import AbstractUser
class MyUser(AbstractUser):
passsettings.py
# 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管理吗?
发布于 2017-04-07 12:13:29
Django Admin使用auth控制应用程序,因此任何身份验证过程都会触发与登录到非管理部分的用户相同的机制,如果在AUTHENTICATION_BACKENDS设置中定义了它们,则将由python-social-auth后端进行处理。
为了使它发挥作用,您需要:
Login with Google链接(链接到/login/google-oauth2)。可以通过添加管理/login.html模板或定义自定义AdminSite来覆盖默认登录表单。is_staff,否则将禁止对管理员的访问。https://stackoverflow.com/questions/43246790
复制相似问题