Блокировка топоров Django не работает так, как ожидалось

Я использую Django Axes для блокировки пользователей после определенного количества неудачных попыток входа. Однако, несмотря на мои настройки, пользователи все равно могут войти в систему сразу после блокировки, если они ввели правильные учетные данные. Я хочу сделать так, чтобы пользователи блокировались на 1 час, независимо от того, вводили ли они правильные учетные данные в течение этого периода.

Вот мои текущие настройки в settings.py:

from datetime import timedelta

AXES_FAILURE_LIMIT = 3
AXES_LOCK_OUT_AT_FAILURE = True
AXES_COOLOFF_TIME = timedelta(hours=1)  # Set cool-off time to 1 hour
AXES_LOCKOUT_CALLABLE = "customer_manager.views.lockout"
AXES_RESET_ON_SUCCESS = False
AXES_ENABLE_ACCESS_FAILURE_LOG = True
AXES_RESET_COOL_OFF_ON_FAILURE_DURING_LOCKOUT = False
AXES_SENSITIVE_PARAMETERS = []
AXES_LOCKOUT_PARAMETERS = ["username"]
AXES_CACHE = 'default'
CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

Я проверил следующее:

axes.middleware.AxesMiddleware включен в настройки MIDDLEWARE, расположенные после AuthenticationMiddleware. Я запустил python manage.py migrate и подтвердил, что нет никаких незавершенных миграций. Я временно удалил вызываемую пользовательскую блокировку, чтобы протестировать с настройками по умолчанию.

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

AXES: User login failed, running database handler for failure.
AXES: Cleaned up 0 expired access attempts from database that were older than 2024-08-07 09:24:53.250394+00:00
Using parameter credentials to get username with key settings.AXES_USERNAME_FORM_FIELD
AXES: Repeated login failure by {username: "daniyal", ip_address: "127.0.0.1", user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0", path_info: "/options/admin/login/"}. Updated existing record in the database.
Using parameter credentials to get username with key settings.AXES_USERNAME_FORM_FIELD
AXES: Getting access attempts that are newer than 2024-08-07 09:24:53.250394+00:00
AXES: Locking out {username: "daniyal", ip_address: "127.0.0.1", user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0", path_info: "/options/admin/login/"} after repeated login failures.
rest_framework.exceptions.AuthenticationFailed: Invalid credentials, try again

Что я упускаю или делаю неправильно? Любая помощь будет очень признательна!

Вернуться на верх