【发布时间】:2019-05-08 08:57:56
【问题描述】:
我正在尝试为我的 django 项目进行自定义身份验证。我通过继承 AbstractUser 来使用自定义用户模型。现在,在创建超级用户帐户并尝试从管理页面登录后,我收到错误 请输入员工帐户的正确用户名和密码。请注意,这两个字段都可能区分大小写。。我已经仔细检查了我的用户名和密码是否正确。
经过一番研究,发现我正在制作的自定义身份验证后端有问题。
from support.models import CustomUser
class UsernameIdModelBackend(object):
def authenticate(self,username,password,uid):
if username:
try:
user = CustomUser.objects.get(username=username)
if user.check_password(password):
return user
except CustomUser.DoesNotExist:
return None
else:
try:
user= CustomUser.objects.get(uid=uid)
return user
except CustomUser.DoesNotExist:
return None
def get_user(self, user_id):
try:
return CustomUser.objects.get(pk=user_id)
except CustomUser.DoesNotExist:
return None
我还在 settings.py 中设置了 AUTHENTICATION_BACKENDS。应该改变什么来纠正这个问题。有人可以指点我正确的方法吗。
PS。我是自定义身份验证的新手,期待创建具有 2 种登录类型的身份验证。
【问题讨论】: