Django配置邮箱登录

时间:2023-08-08 14:30:01

1.settings下配置

# AUTH 方法(支持邮箱登录)
AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)

2.views下逻辑如下

from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
from users.models import UserProfile, EmailVerifyRecord # 让用户可以用邮箱登录
# setting 里要有对应的配置
class CustomBackend(ModelBackend):
def authenticate(self, request, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(Q(username=username) | Q(email=username))
if user.check_password(password):
return user
except Exception as e:
return None