django-axes不能捕获失败的登录尝试,但是可以捕获管理员的失败尝试

Pri*_*shj 1 authentication django

我正在使用Django轴,并使用github自述文件中所述的完全相同的步骤。我可以通过django视图登录和注销,但是如果通过主网站,则不会捕获任何失败的登录尝试。尽管如此,从管理站点登录失败的尝试就可以了。我正在使用FailedLoginMiddleware,并且没有管理员专用。我已经仔细检查了所有设置和配置,但仍然无法找到问题的根源。请帮忙。

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'axes.middleware.FailedLoginMiddleware',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'axes',
    'django.contrib.admin',
)
Run Code Online (Sandbox Code Playgroud)

这是项目urls.py:

from django.conf.urls.defaults import patterns, include, url
from django.contrib.auth.views import login, logout, password_change 

from qs.forms import ValidatingPasswordChangeForm

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^login/$', login, {'template_name': 'auth/login.html'}),
    (r'^logout/$', logout, {'redirect_field_name': '/login', 
                            'template_name': 'auth/logged_out.html'}),
    (r'^passw_change/$', password_change, 
                           {'post_change_redirect': '/rage', 
                            'template_name': 'auth/password_change.html',
                            'password_change_form': ValidatingPasswordChangeForm}),

    (r'^passw_reset/$', 'views.rage_password_reset'),
    (r'^passw_reset/done/', 'views.rage_password_reset_done'),
    (r'^passw_reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'views.rage_password_reset_confirm'),
    (r'^passw_reset/complete/$', 'views.rage_password_reset_complete'),

    url(r'^$', 'be.views.main.index'),
    url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

dge*_*gel 6

我无法想到您的配置无法正常工作的任何原因-我使用django-axes,并且我的设置与您的设置完全相同,并且可以正常使用。但是,您可以通过执行以下操作来强制轴记录所有内容:

  1. 更改axes.middleware.FailedLoginMiddlewareaxes.middleware.FailedAdminLoginMiddleware中的settings.py。(FailedAuthLoginMiddleware显然不适用于您,因此请不要使用它。)

  2. 编辑您的urls.conf

    ...
    from django.contrib.auth.views import login, logout, password_change
    from axes.decorators import watch_login
    ...
    urlpatterns = patterns('',
        (r'^login/$', watch_login(login), {'template_name': 'auth/login.html'}),
    ...
    
    Run Code Online (Sandbox Code Playgroud)

这将迫使轴记录尝试次数,并且这样做也可能使您初步了解问题所在。