dajngo2.1用户名和密码都正确authticate返回None
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dajngo2.1用户名和密码都正确authticate返回None相关的知识,希望对你有一定的参考价值。
django2.1后默认的认证后端(django.contrib.auth.backends.ModelBackend)而这个类中的authenticate方法中有如下代码:
def authenticate(self, request, username=None, password=None, **kwargs):
.....
if user.check_password(password) and self.user_can_authenticate(user):
return user
而且user_can_authenticate函数如下:
def user_can_authenticate(self, user):
is_active = getattr(user, ‘is_active‘, None)
return is_active or is_active is None
由此可知django2.1后也会对用户的is_active进行判断,如果is_active为false,则authticate也会返回None.
要解决以上问题,只要继承django.contrib.auth.backends.ModelBackend类重写authticate方法返回True即可,此出刚好有一个类实现了以上操作django.contrib.auth.backends.AllowAllUsersModelBackend.
在settings.py中重新指定后端处理类即可,如下:
AUTHENTICATION_BACKENDS = [‘django.contrib.auth.backends.AllowAllUsersModelBackend‘]
以上是关于dajngo2.1用户名和密码都正确authticate返回None的主要内容,如果未能解决你的问题,请参考以下文章
FTP一直登录不上去 地址 用户名 密码都是正确的 以前登陆过
网络映射需要输入用户名和密码,我输入的都正确,但是不行,怎么解决呢