Переопределение метода аутентификации - Django admin - PullRequest
6 голосов
/ 16 ноября 2010

Я пытаюсь выяснить, как усовершенствовать метод аутентификации с помощью дополнительных функций.

например.

  • Истекающие пароли
  • специальные форматы паролей
  • требования к длине
  • и т.д ...

Это довольно просто для внешнего интерфейса сайта, но как насчет админ-панели?


Я считаю, что должен переопределить объект User's Manager, так как аутентификация, вероятно, находится там. Думаю, это довольно сложно понять.

Заранее спасибо! :)

Ответы [ 2 ]

6 голосов
/ 16 ноября 2010

Вы можете создать пользовательский бэкэнд аутентификации, следуя инструкциям в http://docs.djangoproject.com/en/dev/topics/auth/#authentication-backends. По сути, вы создаете бэкэнд-класс, который имеет метод authenticate:

class MyBackend:
    def authenticate(self, username=None, password=None):
        # Check the username/password and return a User.

Затем добавьте класс к AUTHENTICATION_BACKENDS в settings.py.

Несмотря на то, что это для аутентификации, вы можете выполнить все упомянутые вами действия по проверке пароля, просто перенаправив пользователя на страницу смены пароля, если пароль правильный, но срок его действия истек, например. Попробуйте использовать среду обмена сообщениями , чтобы дать пользователю подсказку о том, что происходит, когда он направляет его на общую страницу смены пароля.

0 голосов
/ 17 ноября 2010

Если вы хотите, чтобы проверка паролей была встроена в модель, то, вероятно, вы захотите расширить модель пользователя django .

В противном случае вы можете сделать следующее:

  • переопределяет параметры пароля администратора, создавая собственные представления для изменения и установки паролей, а затем помещая соответствующие URL-адреса чуть выше (r'^admin/', include(admin.site.urls)). Regex будет выглядеть примерно так: (r'^admin/auth/user/(\d+)/password/', new_change_password).
  • Отслеживайте срок действия пароля в отдельной модели, а затем, когда срок его действия истечет, перенаправьте на изменение пароля после истечения срока его действия.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...