Python 自定义电子邮件身份验证后端在django 2.1.4中不工作
我在django 2.1.4中集成自定义身份验证后端时遇到问题。以下是我的代码: 我的FMS.AUTH后端模块:Python 自定义电子邮件身份验证后端在django 2.1.4中不工作,python,django,django-authentication,django-login,Python,Django,Django Authentication,Django Login,我在django 2.1.4中集成自定义身份验证后端时遇到问题。以下是我的代码: 我的FMS.AUTH后端模块: from django.contrib.auth import get_user_model from django.contrib.auth.backends import ModelBackend class authEmailBackend(ModelBackend): def authenticate(self, username=None, password=No
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
class authEmailBackend(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
print("aaaaaaa")
UserModel = get_user_model()
try:
user = UserModel.objects.get(email=username)
except UserModel.DoesNotExist:
return None
else:
if user.check_password(password):
return user
return None
my settings.py:
my URL.py:
以上代码在我的情况下不起作用。authEmailBackend中的函数authenticate从来不会在控制台中以“无”打印的形式调用,但我会在authenticate函数中打印语句
虽然django 2.0.8也使用相同的代码,但唯一的区别是URL.py是:
但是在较新的django中,django.contrib.auth.views.login不再支持任何功能,我们需要使用django.contrib.auth.views.LoginView。我在某个地方读到,要使用自定义身份验证,我们的url必须指向django.contrib.auth.views.login,但这在这里是不可能的
因此,您能帮我解决这个问题吗。参数需要传递给authenticate方法
class authEmailBackend(ModelBackend):
**def authenticate(self, request, username=None, password=None, **kwargs):**
print("aaaaaaa")
UserModel = get_user_model()
try:
user = UserModel.objects.get(email=username)
except UserModel.DoesNotExist:
return None
else:
if user.check_password(password):
return user
return None
参数需要传递给authenticate方法
class authEmailBackend(ModelBackend):
**def authenticate(self, request, username=None, password=None, **kwargs):**
print("aaaaaaa")
UserModel = get_user_model()
try:
user = UserModel.objects.get(email=username)
except UserModel.DoesNotExist:
return None
else:
if user.check_password(password):
return user
return None
我们在早期版本中不需要它?是从django 1.11传递来进行身份验证的,在早期版本中我们不需要它吗?从django 1.11传递以进行身份验证
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login', my_decos.logout_required(auth_views.login(template_name = 'register/login.html')),name = 'login')
]
class authEmailBackend(ModelBackend):
**def authenticate(self, request, username=None, password=None, **kwargs):**
print("aaaaaaa")
UserModel = get_user_model()
try:
user = UserModel.objects.get(email=username)
except UserModel.DoesNotExist:
return None
else:
if user.check_password(password):
return user
return None