Возможно ли иметь две разные настройки сброса блокировки для блокировки django-axes?
Я использую пользовательский вид django login и в настоящее время реализую дросселирование для неудачных попыток входа. В настоящее время я использую Django-axes для этой цели.
Я успешно реализовал 'мягкую блокировку' для неудачных попыток входа (блокировка по имени пользователя за каждые 10 неудачных попыток входа в течение 5 минут). Я хотел бы проверить, возможно ли также реализовать 'жесткую блокировку' (проверка того, что не более 100 неудачных попыток в час возможно на одном аккаунте) вместе с этой 'мягкой блокировкой'?
Вот что я сделал для своей "мягкой блокировки"
settings.py
INSTALLED_APPS = [
...,
'axes'
]
AUTHENTICATION_BACKENDS = (
"axes.backends.AxesBackend",
...
)
# django-Axes systems
# https://raw.githubusercontent.com/jazzband/django-axes/master/docs/4_configuration.rst
## basic configuration for login attempt and lockout duration
AXES_FAILURE_LIMIT = 10
AXES_LOCK_OUT_AT_FAILURE = True
AXES_COOLOFF_TIME = 0.083 # lockout 5 mins
AXES_RESET_COOL_OFF_ON_FAILURE_DURING_LOCKOUT = False
AXES_ONLY_USER_FAILURES = True
AXES_RESET_ON_SUCCESS = True
## custom account soft lockout message
AXES_LOCKOUT_CALLABLE = 'customlogin.views.user_lockout'
CUSTOM_AXES_SOFT_LOCKOUT_MESSAGE = 'Too many failed login attempts. Please try again in 5 minutes.'
## fields to use for checking
AXES_USERNAME_FORM_FIELD = 'email'
## logging for db
AXES_DISABLE_ACCESS_LOG = True
AXES_ENABLE_ACCESS_FAILURE_LOG = True
AXES_ACCESS_FAILURE_LOG_PER_USER_LIMIT = 300
views.py
from axes.decorators import axes_dispatch
@axes_dispatch
def user_login(request):
# main body of code
def user_lockout(request, credentials):
"""
Custom accout lockout message for django-axes.
change custom_account_lockout_message accordingly to what you need.
"""
response_data = {
"login": "Failed",
"error": settings.CUSTOM_AXES_SOFT_LOCKOUT_MESSAGE
}
return HttpResponse(JsonResponse(response_data))
Любые рекомендации будут очень полезны! Спасибо заранее.