django 1.10,自定义auth后端,是否可以使用1个自定义后端?

问题描述 投票:0回答:1

我读了它(Log in user using either email address or username in Django)并使用这个后端

自定义后端:

from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.auth.backends import ModelBackend


class EmailOrUsernameModelBackend(ModelBackend):

    def authenticate(self, username=None, password=None):
        if '@' in username:
            kwargs = {'email': username}
        else:
            kwargs = {'username': username}
        try:
            user = User.objects.get(**kwargs)
            if user.check_password(password):
                return user
        except User.DoesNotExist:
            return None

和settings.py:

AUTHENTICATION_BACKENDS=[
    'logintest.custombackend.EmailOrUsernameModelBackend',
]

虽然它运作良好,但我想知道我是否应该使用这样的后端:

AUTHENTICATION_BACKENDS=[
    'logintest.custombackend.EmailOrUsernameModelBackend',
    'django.contrib.auth.backends.ModelBackend'
]

我是否将它用作后端?或者只有一个自定义后端可以吗?

django
1个回答
1
投票

没有理由在此处添加默认后端,因为它与自定义后端的用户名部分相同。

© www.soinside.com 2019 - 2024. All rights reserved.