При создании пользователей или суперпользователей оба используют одинаковые параметры конфигурации Django AUTH_PASSWORD_VALIDATORS
, и если оставить их без изменений, они будут содержать список валидаторов, с которыми будут проверяться все пароли при создании пользователей через администратора Django.
Это также место, где вы укрепляете свои валидаторы, добавляя больше, если хотите больше или удаляя, если хотите быть более слабыми.
Однако, если вы создаете пользователей с помощью команд управления create_user
и create_superuser
, этот список валидаторов не будет применяться. Это потому, что Django предполагает, что только разработчики взаимодействуют с Django на этом уровне.
Что касается вашего второго запроса, в Django нет ничего встроенного, поддерживающего попытки входа и последующую блокировку дальнейших входов. Это то, что исходит от сторонних приложений, таких как django-defender или от собственной реализации.
Широкие штрихи этой реализации
Добавить новый механизм таблиц, который хранит количество попыток
Добавить новые настройки в settings.py LOGIN_ATTEMPTS = 3
- Переопределить поток входа в систему для пользователя, в котором вы проверяете эту таблицу на попытки
- В случае неудачной попытки увеличить счетчик, в случае успешного сброса счетчика.
- Если пользователь достигает предела попыток, задайте для пользователей
is_active
значение False
и всегда возвращайте False
из переопределения login
.