您好,登錄后才能下訂單哦!
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函數(shù)如下:
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即可,此出剛好有一個類實現(xiàn)了以上操作django.contrib.auth.backends.AllowAllUsersModelBackend.
在settings.py中重新指定后端處理類即可,如下:
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。