Django-使用自定义用户模型进行身份验证将返回无

时间:2018-11-25 10:56:18

标签: django

我正在遵循有关设置身份验证的教程(https://thinkster.io/tutorials/django-json-api/authentication)。我已经到了注册用户并收到令牌的地步。我可以掉进去做

 >>> user = Users.objects.first()
 >>> user.email 
 >>> test@outlook.com
 >>> user.password
 >>> 12345678

这表明该用户存在于数据库中。但是当调用我的登录端点时;

/users/login/ 

authenticate方法返回无。

user = authenticate(username=email, password=password)

我刚刚打印了电子邮件和密码,它显示了传入的正确数据。

我还将我的USERNAME_FIELD设置为在模型中通过电子邮件发送。

USERNAME_FIELD = 'email'

我已经在设置中将模型更新为

AUTH_USER_MODEL = 'aemauthentication.User'

我已经浏览了一下,设置文件中的上一行似乎是大多数有此问题的人的认可答案。

GitHub链接到项目-https://github.com/Daniel-sims/aem_1

1 个答案:

答案 0 :(得分:1)

按照; Django User Creation successful, but authenticate() returning None

我已更改create_user方法以将密码作为参数;

user = self.model(username=username, email=self.normalize_email(email), password=password)

但是您必须调用设置密码,因此一切正常;

user = self.model(username=username, email=self.normalize_email(email))
user.set_password(password)