Вы можете создать пользовательский бэкэнд аутентификации, следуя инструкциям в 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
.
Несмотря на то, что это для аутентификации, вы можете выполнить все упомянутые вами действия по проверке пароля, просто перенаправив пользователя на страницу смены пароля, если пароль правильный, но срок его действия истек, например. Попробуйте использовать среду обмена сообщениями , чтобы дать пользователю подсказку о том, что происходит, когда он направляет его на общую страницу смены пароля.