使用 django-axes 登录 Django

2023-11-22

我用 django 创建了一个网站。用户应该能够登录。登录视图如下所示:

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)

但有了这个“解决方案”,我无法处理暴力攻击。于是我环顾四周,发现了这个:限制 Django 中的暴力登录攻击

第一个答案很有帮助。我选择 django-axes 因为 django-ratelimit 仅计算调用视图的数量。

但这是我的问题:当我尝试使用错误的密码登录时,它不会算作失败。 (仅在/admin-部分)。

我发现没有选项可以将我的登录视图“添加”到 django-axes。

所以这是我的问题:

如何配置 django-axes 来处理登录视图中的失败登录?

EDIT:这是我的设置文件:

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

默认情况下django-axes使用 django 的登录视图 *(django.contrib.auth.views.login)。在中间件中,此视图装饰为watch_login.

因此,您可以通过两种方式解决您的问题:

  • 使用标准登录视图。这样django-axes不需要额外的设置。
  • 装饰你的登录视图watch_login装饰师。

例如:views.py

from axes.decorators import watch_login
...

@watch_login
def your_custom_login_view(request):
    ...

然后它将在基于类的视图中像 @Ali Faizan 提到的那样使用:

@method_decorator(watch_login, name='dispatch')
class your_custom_login_view():
     ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 django-axes 登录 Django 的相关文章

  • Matplotlib 标准化颜色条 (Python)

    我正在尝试使用 matplotlib 当然还有 numpy 绘制轮廓图 它有效 它绘制了它应该绘制的内容 但不幸的是我无法设置颜色条范围 问题是我有很多图 并且需要所有图都具有相同的颜色条 相同的最小值和最大值 相同的颜色 我复制并粘贴了在
  • 如何使用 Mercurial 将文件夹与现有 Heroku 应用程序链接

    我在 Bitbucket 上有一个现有的 Django 应用程序 我能够部署到 Herokuhg git https stackoverflow com q 9591380 343834 每当我想在应用程序文件夹中运行一些 heroku 命
  • Django modelForm 中的文件上传

    我正在尝试在 appengine django 中上传文档 使用纯 django 代码成功上传文档 使用 python manage py runsever 但是当我尝试使用 appengine 项目运行 django 时 它给了我错误 E
  • 获取单个方程的脚本

    在文本文件中输入 a 2 8 b 3 9 c 4 8 d 5 9 e a b f c d g 0 6 h 1 7 i e g j f h output i j 期望的输出 输出 2 8 3 9 0 6 4 8 5 9 1 7 如果输入文件名
  • 类属性在功能上依赖于其他类属性

    我正在尝试使用静态类属性来定义另一个静态类属性 我认为可以通过以下代码来实现 f lambda s s 1 class A foo foo bar f A foo 然而 这导致NameError name A is not defined
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • 无法包含外部 pandas 文档 Pycharm v--2018.1.2

    我无法包含外部 pandas 文档Pycharm v 2018 1 2 例如 numpy gt http docs scipy org doc numpy reference generated module name element na
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • django 模板上的 vscode html 自动套用格式

    我喜欢 VSCode 的保存自动格式功能 直到它弄乱了我的模板代码 它错误地将我的 django 模板语法格式化为一行代码 有时非常长的一行 所以不用这段代码 for row in ABCDEFGH tr for col in 123456
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • ValueError:无法插入 ID,已存在

    我有这个数据 ID TIME 1 2 1 4 1 2 2 3 我想按以下方式对数据进行分组ID并计算每组的平均时间和规模 ID MEAN TIME COUNT 1 2 67 3 2 3 00 1 如果我运行此代码 则会收到错误 ValueE
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin
  • PyQt 中的线程和信号问题

    我在 PyQt 中的线程之间进行通信时遇到一些问题 我使用信号在两个线程 发送者和监听者 之间进行通信 发送者发送消息 期望被监听者接收 但是 没有收到任何消息 谁能建议可能出了什么问题 我确信这一定很简单 但我已经环顾了几个小时但没有发现
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html

随机推荐

  • Laravel 4 中的包控制器

    我想在 Laravel 4 包中添加控制器 但我无法让路由正常工作 我已按照 Laravel 4 文档中的包说明进行操作 并获得了适用于非控制器路由的routes php 文件 有人可以给我一些关于如何让包控制器在 Laravel 4 中工
  • 在没有浏览器的情况下将 OpenID 与 WCF 一起使用,可能吗?

    从我对 OpenID 的大部分阅读来看 似乎可能需要浏览器 我正在编写一个 WCF 应用程序 并希望使用 OpenID 作为身份验证方法 但我的应用程序不是 Web 应用程序 是否可以在不需要 Web 浏览器的情况下一起使用 WCF 和 O
  • Pylance 的 VSCode 设置

    我正在使用以下组件运行 Vscode Version 1 51 1 user setup Commit e5a624b788d92b8d34d1392e4c4d9789406efe8f Date 2020 11 10T23 34 32 02
  • 如何使用 jQuery 获取客户端 IP 地址

    我想知道如何使用 jQuery 获取客户端 IP 地址 是否可以 我知道纯 JavaScript 不能 但使用了一些代码JSONP来自 Stack Overflow 本身 那么 有没有使用 jQuery 的解决方法呢 jQuery 可以处理
  • 加载视频 mp4 webpack 加载器

    如何使用 webpcak 4 加载 mp4 视频格式 我尝试如下 test mp4 use file loader loader file loader name videos name ext 并像这样导入 import pressBut
  • Jquery 的 Ajax 自动完成:如何发送动态参数

    我在用Ajax Autocomplete for Jquery http www devbridge com projects autocomplete jquery 在我的一个应用程序中 搜索表单看起来像这样
  • 如何查看 AngularDart 集合的元素?

    我有一个模型 class WordList List
  • AH=2 的 BIOS INT 13H 每次只能读取 72 个扇区。为什么?

    我正在使用 Bochs 2 4 5 编写引导扇区代码 我使用 INT 13H 从软盘读取扇区 但我发现如果读取的扇区数 gt 72 INT13就会失败 返回码为AH 1 下面是代码 这是INT13 返回码为AH 1 为什么INT 13H不能
  • NoMethodError:推送到 Heroku 时,nil:NilClass 未定义方法“[]”

    这里是 Rails 菜鸟 我在推送到 Heroku 时遇到了问题 NoMethodError nil NilClass 的未定义方法 我什至不确定应该从哪里开始解决这个问题 remote gt Preparing app for Rails
  • Twitter Bootstrap 在表格单元格上使用collapse.js [即将完成]

    我正在开发一个列出交易 贷方和借方 的帐户页面 我希望用户能够单击表行 它会展开以显示更多信息 我正在使用 Twitter bootstrap 并查看了文档 这是我得到的结果 table class table table striped
  • 使用 cURL 通过 Powershell 2.0 发出 POST 请求

    Scenario 除此之外 Powershell 2 0 没有有用的 cmdlet Invoke RestMethod 我无法升级到版本 3 而且我发现的大多数示例都使用版本 3 我已经发现本文 然而 对于我的简单场景来说 这似乎太复杂了
  • 设置以编程方式添加的视图的样式

    在我的代码中 我以编程方式将单选按钮 复选框等输入元素添加到我的布局中 问题是 当您通过 xml 添加 radioButton 时 这些元素的样式不是您将获得的默认样式 它看起来真的很白 在白色应用程序背景上几乎是透明的 有点像透明的 另外
  • Paint() 和 PaintComponent() 之间的区别?

    我已经尝试过这方面的教程 但我仍然不太明白 基本上我的问题是哪种方法更好 为什么 我应该使用paint or paintComponent 请尽量让答案简单一些 谢谢 引用自文档paint method 该方法实际上将绘画工作委托给三个受保
  • 可以从 Google 地图 API 中提取行程预计到达时间吗?

    是否可以从两个地址点之间的谷歌地图 API 获取行程预计到达时间 以分钟为单位 和交通数据 有谁知道ETA值是否反映了交通状况 谷歌有一个距离矩阵API返回两个 或多个 点之间的距离和行进时间 可以指定为 lat lng 或地址 我不认为它
  • Spring Boot Tomcat 配置,从容器迁移到嵌入式

    我正在将用于在 Tomcat 容器中运行的 Spring Boot 应用程序迁移到运行嵌入式 Tomcat 的 Spring Boot 应用程序 我的旧 Tomcat 配置在 server xml 中有以下配置
  • 生产中的 CouchDB

    我一直在一些原型应用程序上使用 CouchDB 它非常出色 非常易于使用并且速度非常快 我想知道是否有人在生产中使用过它 并对它的可靠性 操作管理的性能适用性等有什么看法 我正在考虑使用它来支持服务层并利用其复制功能 任何评论 经验都将受到
  • 将焦点设置在 元素上

    我正在使用 Angular 5 开发前端应用程序 我需要隐藏一个搜索框 但单击按钮后 应该显示搜索框并聚焦 我已经尝试了在 StackOverflow 上找到的一些带有指令的方法 但无法成功 这是示例代码 Component selecto
  • Bootstrap 轮播 - YouTube 视频播放时暂停

    我的 Bootstrap 轮播中有一些嵌入的 YouTube 视频 默认情况下 轮播会自动前进 但我想在视频播放时暂停 有没有什么技巧可以检测视频何时播放 如果可能的话 我希望不使用 YouTube API 来完成此操作 每个轮播都有任意数
  • 如何从字符串中删除所有字符

    如何使用 JavaScript 正则表达式从字符串中删除所有非字母字符 您可以使用replace method Hey The 123 sure is fun replace A Za z g gt gt gt HeyThesureisfu
  • 使用 django-axes 登录 Django

    我用 django 创建了一个网站 用户应该能够登录 登录视图如下所示 from django contrib auth import authenticate login from django contrib auth models i