Python 如何在运行set_unsable_password后对用户进行身份验证?

Python 如何在运行set_unsable_password后对用户进行身份验证?,python,django,Python,Django,我创建了一个用户 new_user = create_user( username=username, email=email, first_name=first_name, last_name=last_name) new_user.set_unusable_password() 但是authenticate()为该用户返回None auth_user = authenticate( username=new_user

我创建了一个用户

 new_user = create_user(
            username=username, email=email, first_name=first_name,
            last_name=last_name)
new_user.set_unusable_password()
但是
authenticate()
为该用户返回
None

auth_user = authenticate(
            username=new_user.username, password=new_user.password)
AttributeError: "'AnonymousUser' object has no attribute 'backend'"
该用户登录失败

auth_user = authenticate(
            username=new_user.username, password=new_user.password)
AttributeError: "'AnonymousUser' object has no attribute 'backend'"

如何对这些用户进行身份验证?

尝试编写一个不需要密码的自定义身份验证后端

尝试:

然后,您可以简单地使用自定义身份验证功能:

auth_user = authenticate(username=new_user.username)

当用户没有密码时,您需要
验证(**凭证)
该用户

是验证给定的用户名密码

因此,您应该只创建给定的用户名。基本上,您需要做的唯一身份验证就是检查用户是否在数据库中。但很明显,用户在数据库中。因此,您也可以通过直接设置
user.backend='django.contrib.auth.backends.modelbend'
来伪造身份验证过程

然后是登录给定用户

手动登录用户时,在调用
login()
之前,必须使用
authenticate()
成功验证该用户
authenticate()
在用户上设置一个属性,指出哪个身份验证后端成功地对该用户进行了身份验证(有关详细信息,请参阅后端文档),稍后在登录过程中需要此信息


你错过了括号。新建用户。设置不可用的密码()@BidhanBhattarai感谢
用户。后端
如果可以避免对后端进行硬编码,那就好了。并改用
django.conf.settings.AUTHENTICATION\u后端