Django配置邮箱登录

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

 

posted @ 2018-11-15 21:09  DreamHH  阅读(302)  评论(0编辑  收藏  举报