如何在Django中使用用户名或电子邮件登录| rest_framework_jwt?

时间:2019-03-21 07:55:32

标签: django authentication django-rest-framework customization

我想同时登录usernameemail的页面,无论如何更改,我都写了一个CustomBackend视图进行身份验证,只有username有效,我使用“电子邮件”登录页面,总是出现错误Unable to log in with provided credentials,views.py的部分代码如下:

from django.contrib.auth import get_user_model

MyUser = get_user_model()

class CustomBackend(object):
    def authenticate(self, username=None, password=None, **kwargs):
        try:
            user = MyUser.objects.get(Q(username=username)|Q(email=username))
            if user.check_password(password):
                return user

        except MyUser.DoesNotExist:
            MyUser().set_password(password)

settings.py的部分代码,如下所示:

AUTHENTICATION_BACKENDS = (
    'general.views.CustomBackend',
    'django.contrib.auth.backends.ModelBackend'
)

任何想法都会受到高度赞赏。

0 个答案:

没有答案