Inicio de sesión en Django con django-axes
Creé un sitio con django. Los usuarios deberían poder iniciar sesión. La vista de inicio de sesión se ve así:
from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User
....
if request.method == 'POST':
username = request.POST['username']#get username
password = request.POST['txtPwd']# and password
user = authenticate(username=username, password=password) #checking username and pwd
if user is not None:
if user.is_active:
login(request, user)
Pero con esta "solución" no puedo manejar un ataque de fuerza bruta. Así que miré a mi alrededor y encontré esto:Acelera los ataques de inicio de sesión de fuerza bruta en Django
La primera respuesta fue útil. Elegí django-axes porque django-ratelimit cuenta solo la cantidad de llamadas a una vista.
Pero aquí está mi problema: cuando intento iniciar sesión con una contraseña incorrecta, no se cuenta el error. (Solo en la sección / admin).
No encontré ninguna opción para "agregar" mi vista de inicio de sesión a django-axes.
Ésta es mi pregunta:
¿Cómo puedo configurar django-axes para manejar los inicios de sesión fallidos desde mi vista de inicio de sesión?
EDITAR: Aquí está mi archivo de configuración:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'axes',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'axes.middleware.FailedLoginMiddleware'
)
...
AXES_LOCK_OUT_AT_FAILURE = False
AXES_USE_USER_AGENT = True
AXES_COOLOFF_TIME = 1
AXES_LOGIN_FAILURE_LIMIT = 50