Login no Django com django-axes
Eu criei um site com django. Os usuários devem poder fazer login. A visualização de login é assim:
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)
Mas com esta "solução" não posso lidar com um ataque de força bruta. Então olhei em volta e encontrei o seguinte:Controle de ataques de força bruta no Django
A primeira resposta foi útil. Eu escolhi o django-axes porque o django-ratelimit conta apenas a quantia de chamar uma view.
Mas aqui está o meu problema: quando tento fazer login com senha incorreta, não conta a falha. (Somente na seção / admin).
Não encontrei opção para "adicionar" minha visualização de login ao django-axes.
Então aqui está a minha pergunta:
Como posso configurar o django-axes para lidar com os logins com falha na minha visualização de login?
EDITAR: Aqui está o meu arquivo de configurações:
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