如何检测从不同位置多次登录 Django Web 应用程序?

2023-11-30

我想一次只允许一个经过身份验证的会话在我的 Django 应用程序中进行单独登录。因此,如果用户在给定的 IP 地址上登录网页,并且使用相同的用户凭据从不同的 IP 地址登录,我想做一些事情(注销第一个用户或拒绝第二个用户的访问。)


不确定是否仍然需要,但我想我会分享我的解决方案:

1)安装 django-tracking (谢谢你的提示 Van Gale Google Maps + GeoIP 太棒了!)

2)添加这个中间件:

from django.contrib.sessions.models import Session
from tracking.models import Visitor
from datetime import datetime

class UserRestrictMiddleware(object):
    """
    Prevents more than one user logging in at once from two different IPs
    """
    def process_request(self, request):
        ip_address = request.META.get('REMOTE_ADDR','')
        try:
            last_login = request.user.last_login
        except:
            last_login = 0
        if unicode(last_login)==unicode(datetime.now())[:19]:
            previous_visitors = Visitor.objects.filter(user=request.user).exclude(ip_address=ip_address)
            for visitor in previous_visitors:
                Session.objects.filter(session_key=visitor.session_key).delete()
                visitor.user = None
                visitor.save()

3) 确保它在 VisitorTrackingMiddleware 之后,您应该会发现当有人新登录时,以前的登录会自动被碰撞:)

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

如何检测从不同位置多次登录 Django Web 应用程序? 的相关文章

  • 在 ubuntu 中卸载 python 模块

    我必须删除一个名为 django 的 python 模块 一种流行的模块 因为我安装了错误的版本 1 3 py 2 6 中的 beta 如何卸载这个模块 请解释一下 因为我只在 Windows 中使用过 python 而从未在 Ubuntu
  • 以敏捷/BDD 方式在 Django 中使用 Doctests 的示例

    我有兴趣学习如何以更敏捷 BDD 的方式进行文档测试和单元测试 我发现了一些看似合理的教程 但它们只是缩略图 我真正想看到的是一些采用 BDD 风格开发的 Django 项目的源代码 我不清楚的是如何处理请求对象等 我遇到过这样的情况 我已
  • 使用 pip3 安装 mysqlclient 时遇到问题

    我正在尝试使用 Django 设置 python 3 6 环境 安装说明说我应该安装 mysqlclient 才能连接到 mySQL 我明白了 dennis django sudo H pip3 install mysqlclient Co
  • 具有内联模型的 Django 管理页面加载速度非常慢

    我有一个带有单个内联模型的模型的 Django 管理页面 当内联模型有很多项目 例如 75 个 时 页面加载速度非常慢 大约 30 秒 即使我排除内联模型上的所有字段 让它只渲染名称 情况也是如此 删除内联模型会导致页面加载速度非常快 以秒
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • Django 1.6 的静态文件

    我花了一整天但没有任何作用 我在这里看到了至少 20 篇关于同一主题的帖子 它们各不相同 有不同的建议 但没有一个对我有用 使用 Python 2 7 运行 Django 1 6 我正在尝试从 django 教程加载民意调查应用程序的 cs
  • django-allauth:重新排列表单字段(更改顺序)

    我正在尝试使用 django allauth 进行用户注册 我有这个表格 class UserProfileForm forms ModelForm class Meta model UserProfile fields gender co
  • AWS beanstalk + Django:502 错误网关 - ModuleNotFoundError:没有名为“应用程序”的模块

    我正在尝试将 Django 项目部署到 Elastic Beanstalk 我正在遵循他们的指南 https docs aws amazon com elasticbeanstalk latest dg create deploy pyth
  • Django - 具有自动完成功能的 Javascript 动态内联 FormSet

    我正在尝试制作一种能够附加参与者的调度程序事件编辑器 Models class Session models Model start time models DateTimeField end time models DateTimeFie
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21
  • iFrame 在 Facebook Canvas 应用程序中显示为空白

    我有一个非常简单的页面 我试图在 Facebook iframe 中查看它 它是一个 Django 视图 但它不依赖于请求是通过 POST 还是 GET 提交 它所做的只是返回一些简单的 HTML 如果我们直接点击链接 它会正确显示 如果在
  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • 过滤 django 中的组合日期和时间

    我有一个日期和时间分开的模型 我想过滤未来的事件并最终写了这个 这并不酷 有更好的方法吗 我可以以某种方式使用combine 和min 来实现这一点吗 正如您在查询中看到的 它必须包含 time gt now 的今天事件 future ev
  • Django - 在管理之外使用多对多水平界面

    我正在使用带有 m2m 字段的表单 我希望这个字段看起来像 django 管理站点的水平界面 我该怎么做 谢谢 您需要使用FilteredSelectMultiple widget from django contrib admin wid
  • Django - 使用多种表单

    我想做的是在一个页面中管理多个表单 我知道有表单集 并且我知道表单管理是如何工作的 但是我的想法存在一些问题 只是为了帮助您想象我的问题是什么 我将使用 django 示例模型 from django db import models cl
  • 修复 Django1.9 中检测到的冲突迁移

    我更新了Django 动态模型 https github com dobarkod django dynamic model支持 Django 1 9 的存储库 我收到这个错误 CommandError Conflicting migrat
  • Django - 是否可以迭代方法?

    我正在 Django 中开发一个 Web 应用程序 它可以处理产品 价格和统计数据等 EDIT 更直接的解释 如何 分组 或 标记 一些实例方法 以便我可以像这样迭代它们for method in instance name of the
  • Django - 获取 PIL 图像保存方法以与 Amazon s3boto 存储一起使用

    为了在上传时调整图像大小 使用 PIL 我重写了文章模型的保存方法 如下所示 def save self super Article self save if self image size 160 160 image Image open

随机推荐

  • Cron 表达式在该月的最后一天不起作用

    我想安排一个任务在每月最后一天上午 10 10 运行 cron 表达式是0 10 10 L 现在的问题是CronSequenceGenerator正在投掷NumberFormatException为 L 值 这意味着春天的CronSeque
  • WPF DataGrid 单元格文本换行 - 设置为 NoWrap (False)

    如何将 WPF DataGrid 中每个单元格的 TextWrapping 设置为 NoWrap 我知道单元格本身没有 TextWrapping 属性 但我想在单元格内的控件上设置该属性 我正在使用的 DataGrid 没有显式定义的列 它
  • C# 类可以从其自己的实现中调用接口的默认接口方法吗?

    如果我有一个像这样的默认接口方法 public interface IGreeter void SayHello string name gt System Console WriteLine Hello name 我可以让我的具体实现调用
  • 删除标签但保留文本

    所以我有这个 a xml 文件中的标记 a href www somethinggggg com Something 123 a 我想要的结果是使用 Nokogiri 并完全删除它的标签 这样它就不再是可点击的链接 例如 Something
  • mysql 说:无法连接:设置无效。克安普

    我更改了 root 密码进 行测试 现在我无法登录 XAMPP 中的 phpMyAdmin 页面 我寻求帮助here and here这基本上说改变了配置文件 inc php文件输入XAMPP PHPMYADMIN folder Authe
  • 如何使用 Html.BeginForm() 将 QueryString 值放入 RouteValueDictionary 中?

    我发现Html BeginForm 自动使用 RawUrl 即 QueryStringParamters 填充routeValueDictionary 但是我需要指定一个 HtmlAttribute 所以我需要使用覆盖 public sta
  • 如何动态更改applicationID

    我正在尝试通过将原始 id 附加到 GIT 分支的分支名称来更改我的 applicationId 剧本重命名ID sh完成重命名applicationID的工作 虽然我可以在运行构建时成功重命名ApplicationID 但我希望在构建后恢
  • 用概念检查属性类型

    我想检查结构 类的属性是否符合我的概念需求 但编译器抱怨 Example struct N char value auto Get return value struct M int value auto Get return value
  • 动物园管理员合奏没有出现

    我正在尝试配置 3 个节点的集合文档 它们都在 Linux Ubuntu 上 在所有三个节点上 配置文件如下所示 ZOOKEEPER HOME conf 下的zoo cfg tickTime 2000 dataDir home zkuser
  • 如何使用 jest/react-testing-library 模拟 socket.io-client

    我正在构建一个聊天应用程序 并想使用编写集成测试react testing library并且不知道如何嘲笑socket io client s socket on socket emit etc 我尝试按照这个article并尝试使用模拟
  • PHP 在按钮单击时执行 Python 脚本

    我正在使用 php 有一个按钮刷新 python 脚本 这样做的目的是当存在某个输入并按下按钮时 运行 python 脚本 如果没有用户输入 则有一个默认值 input val 万一 我一直在尝试测试这个的方法是在我的 python 文件中
  • 将 div 动画至 100% 高度

    我试图将 div 动画化为其内容的 100 但它只是闪烁 而不是为 div 动画化 背景在动画结束时消失 我很困惑 因为当我输入高度数字而不是百分比时它会起作用 artbutton click function event event pr
  • Three.js - 将网格速度转换为网格旋转

    假设我有一个 Three js 网格和一个速度向量 3 速度在其他地方发生改变 然后每帧添加到网格位置 我想要的是 mesh rotation 与速度相对应 即网格是一个始终指向其前进方向的箭头 这是我尝试过的两种方法 使网格旋转 是的 但
  • 在Asp.net MVC4(Razor)中根据用户角色隐藏和显示Layout.cshtml的div标签

    我有一个母版页 其中有一些用于称为用户的角色的菜单 其他菜单用于管理员的角色 所以我愿意检查用户的角色 并显示一些 div 标签并隐藏其他标签用户角色的基础 因为 我们没有layout cshtml的控制器 所以我如何为布局视图设置view
  • windows上的openssl aes-256加密文件在linux上无法解密

    我有一个在 Windows apache 上运行的 php 文档存储库应用程序 该应用程序将使用以下命令对任何上传的文档进行 aes 加密 echo MyPass34 openssl exe aes 256 cbc pass stdin s
  • 为什么在 Android 中无法更改资源文件中字符串的颜色?

    tvName是TextView控件 World 的颜色改变了 但 Paul 的颜色没有改变 为什么 而且 在 Android Studio 3 1 3 中 我收到提示 fromHtml String Spanned 已弃用 在 Java 中
  • SendMessage 导致脚本挂起

    我遇到一个问题 SendMessage 函数导致脚本挂起 因此永远不会退出 尽管它正在像应有的那样运行 SendMessage 其任务已完成 无论如何 有没有办法解决这个问题 因为我很难从主脚本中删除它 Stop job name offm
  • 使用 opengles、android 播放视频

    如何在android中使用opengl es播放视频 你的问题有点模糊 如果您只想在 GL 表面上播放视频 这是可能的 请参阅Media Player示例代码戴夫在他的样本中提到的 您所要做的就是更换SurfaceView with a G
  • Jquery .autocomplete 不起作用

    我有一个 jquery 自动完成功能 它没有做任何事情 我已经使用了来自的代码here 它在他们的示例中有效 有一些变化 首先 数组是从 viewModelList 创建的并且它可以工作 这是其中的一小部分 var suburbs id 1
  • 如何检测从不同位置多次登录 Django Web 应用程序?

    我想一次只允许一个经过身份验证的会话在我的 Django 应用程序中进行单独登录 因此 如果用户在给定的 IP 地址上登录网页 并且使用相同的用户凭据从不同的 IP 地址登录 我想做一些事情 注销第一个用户或拒绝第二个用户的访问 不确定是否