Как мне пересмотреть модуль аутентификации Django? - PullRequest
2 голосов
/ 25 июля 2011

Я относительно новичок в Django и пытаюсь внести некоторые изменения в основной модуль аутентификации Django.Я добавил новый код, который аутентифицирует пользователя на основе его адреса электронной почты, в метод authenticate класса ModelBackend в django.contrib.auth.backends.py, однако этот новый код, похоже, не оказывает никакого влияния, даже когда я добавил нижек моим настройкам.

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

Фактически я удалил весь метод authenticate и все еще смог войти в свое приложение Django просто отлично.Кто-нибудь знает, где я ошибаюсь, и как лучше всего пересмотреть основную систему аутентификации Django?

1 Ответ

2 голосов
/ 25 июля 2011

Предполагается, что вы импортируете серверную часть django.contrib.auth.backends.ModelBackend в модуль, сделаете его подкласс, переопределите authenticate в процессе, а затем укажите AUTHENTICATION_BACKENDS на ваш подкласс. См. Раздел о написании вашего собственного аутентификационного бэкэнда в руководстве. На самом деле, вы должны прочитать всю страницу.

Не вносите никаких изменений в django.contrib напрямую. Это сорвется со следующим обновлением. Подкласс это или искать способы подключиться к нему.

Я не удивлен, аутентификация сработала, когда вы разорвали вещи. Аутентификация Django является дополнением; Django должен иметь возможность работать без него, поэтому по умолчанию будет «allow».

...