如何在 Django 中强制用户注销?

2024-03-30

在我的 Django 应用程序中,在某些条件下,我希望能够强制用户通过用户名注销。不一定是当前登录的用户,而是另一个用户。因此,我认为请求方法没有任何有关我要注销的用户的会话信息。

我熟悉 django.auth 和 auth。注销方法,但需要request作为一个论点。如果我只有用户名,是否有“Django 方式”来注销用户?或者我是否必须推出自己的注销 SQL?


Update:

从 Django 1.7 开始,用户在密码更改时会自动注销。对于每个请求,会将当前密码哈希值与其会话中保存的值进行比较,如果不匹配,则用户将被注销。

因此,简单的密码更新就会导致用户注销。然后,您可以禁用该帐户的登录权限,或建议他们使用密码重置功能设置新密码并重新登录。

原来的:

我认为 Django 中还没有一种认可的方法可以做到这一点。

用户 ID 存储在会话对象中,但它是经过编码的。不幸的是,这意味着您必须迭代所有会话、解码和比较......

两步:

首先删除目标用户的会话对象。如果他们从多台计算机登录,他们将拥有多个会话对象。

from django.contrib.sessions.models import Session
from django.contrib.auth.models import User

# grab the user in question 
user = User.objects.get(username='johndoe')

[s.delete() for s in Session.objects.all() if s.get_decoded().get('_auth_user_id') == user.id]

然后,如果需要的话,将它们锁在外面......

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

如何在 Django 中强制用户注销? 的相关文章

  • Django - 隐藏内联标签

    如何在 Django 内联中隐藏标签 当我理解正确时 您可以通过添加属性将 verbose name 设置为模型中的空字符串 verbose name 到你的领域就像 street models CharField max length 5
  • 我们什么时候应该在 Django 中使用“db_index=True”?

    当我们应该定义db index True在模型字段上 我正在尝试优化应用程序并且我想了解更多信息db index 什么情况下我们应该使用它 文档说使用db index True在模型字段上用于加速查找 但在存储和内存方面略有缺点 我们应该使
  • React 错误:目标容器不是 DOM 元素

    我刚刚开始使用 React 所以这可能是一个非常简单的错误 但我们开始吧 我的html代码非常简单 load staticfiles
  • Django SessionWizardView不执行done方法

    我无法让我的 SessionWizardView 工作 当我提交最后一步时 向导跳回第一步 不执行done方法 views py class CvWizardView CookieWizardView form list InfoPerso
  • 使 Django 内置 send_mail 函数默认使用 html

    我想替换内置发送邮件功能 仅适用于纯文本电子邮件 用我自己的智能发送邮件函数 自动生成 html 和纯文本版本 一切都按我自己的电子邮件的预期进行 在我自己的应用程序中定义 我可以在views py中以这种方式做到这一点 from djan
  • 基于值而不是类型的单次调度

    我在 Django 上构建 SPA 并且有一个庞大的功能 其中包含许多功能if用于检查我的对象字段的状态名称的语句 像这样 if self state new do some logic if self state archive do s
  • 跨应用程序使用 Django 模型?

    因此 在我的 Django 项目中 我有几个不同的应用程序 每个应用程序都有自己的模型 视图 模板等 让这些应用程序进行通信的好方法 Django 方式 是什么 一个具体的例子是一个会议应用程序 它有一个会议模型 我有一个家庭应用程序 我想
  • “从表中选择不同的字段名称”Django使用原始sql

    我怎样才能跑SELECT DISTINCT field name from table Django 中的 SQL 查询为raw sql 当我尝试使用时Table objects raw SELECT DISTINCT field name
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • Django 在 rss feed 中指定频道图像的方式

    在 rss feed 中指定频道图像的 django way 是什么 我可以通过滚动我自己的 xml 来手动完成此操作 但我正在寻找一种正确的方法来完成此操作 Editdobrych 的解决方案在这里不太适用 因为我具体询问的是 RSS 而
  • django AuditTrail 与还原

    我正在开发一个新的网络应用程序 我需要将数据库中的任何更改存储到审核表中 此类审计表的目的是 稍后在真正的物理审计中 我们可以确定在某种情况下发生了什么 谁编辑了什么以及数据库当时的状态是什么 复杂的计算 所以大多数审计表将被写入而不是读取
  • Django通用外键和select_相关

    我试图使用与通用外键的关系来选择模型 但它没有按预期工作 我认为用代码可以更好地说明和理解 class ModelA models Model created models DateTimeField auto now add True c
  • 如何在 Django 中使用基于类的视图创建注册视图?

    当我开始使用 Django 时 我几乎使用 FBV 基于函数的视图 来处理所有事情 包括注册新用户 但当我更深入地研究项目时 我意识到基于类的视图通常更适合大型项目 因为它们更干净且可维护 但这并不是说 FBV 不是 无论如何 我将整个项目
  • ModelChoiceField 在提交表单时给出无效选择错误

    我想允许用户删除特定模型的关联外键列表 假设我们有这两个模型 class IceBox models Model class FoodItem models Model name models CharField icebox models
  • 将 python 字典中的数据呈现给 django 模板。

    我有一本字典 data sok 1 10 sao 1 10 sok sao 2 20 我如何 循环字典 将我的数据作为 HTML 表呈现给 Django 模板 这种格式为表格 author qty Amount sok 1 10 sao 1
  • Django模型更新或创建具有唯一约束的对象

    有一个模型 class Proxy models Model host models CharField max length 100 port models CharField max length 10 login models Cha
  • Django:测试客户端的上下文在 shell 中为空

    我无法访问context的属性HttpResponse来自 ipython 的对象 但单元测试访问context 这是单元测试 测试运行正常通过 from django test import Client TestCase from dj
  • 如何从 Django 管理界面禁用“最近操作”小部件?

    我不想展示最近的操作小部件在 django 管理站点中 我不知道如何完成此操作 你可以覆盖admin index html禁用显示的模板 有 您可能想要更改 删除的侧边栏块 有条件地启用或禁用操作 ModelAdmin get action
  • 带有用户信息的 Django Logger

    我只是好奇 是否可以放User内的信息formatters信息输入LOGGING配置在setting py 现在我只是将该信息放入要记录的消息中 但也许有一种方法可以将其设置为formatters争论 这是我的LOGGING现在的配置 LO
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini

随机推荐

  • 通过反射获取对象

    我正在寻找 C 中的机制 如下所示 Car car1 Car car2 Car car Car SomeMechanism Get car1 car1 和 car2 是字段 所以我想得到一些带有反射的对象 而不是类型 我怎样才能在c 中做到
  • 如何忽略 Web 浏览器中的脚本错误

    当我关闭使用网络浏览器的应用程序时会发生什么 以下网址使用flash播放器 一切正常 此错误在应用程序关闭时显示 我该如何忽略它 我知道为时已晚 但我觉得我对这个问题有一个聪明的答案 使用这个 它对我来说很有效 webBrowser Scr
  • 多重处理:类型错误:“int”对象不可迭代

    我正在使用multiprocessingPython 3 中的模块 但由于某种原因 它不断抛出TypeError int object is not iterable当我运行程序时 这就是我所做的 def main i global url
  • mod_wsgi 无法连接 WSGI 守护进程

    我正在使用 Easy apache 4 mod wsgi 和 Python 3 5 当我在服务器中调用 Django 项目时 出现以下错误 13 Permission denied mod wsgi pid 24223 Unable to
  • 平移多个 Y 轴之一以获取高图

    我是 highchart javascript 的新手 而且我没有样品来展示它 但我见过图表有两个 Y 轴 左轴和右轴 我可以上下拖动一个轴而不影响另一个轴 该图表可能包含一些系列数据 我见过构建的插件 http www highchart
  • 非常快的无限循环,不阻塞 I/O

    有没有更快的替代方案window requestAnimationFrame 对于不阻塞 I O 的无限循环 我在循环中所做的事情与动画无关 所以我不在乎下一帧何时准备好 并且我已经读过window requestAnimationFram
  • intellij IDEA 中每个模块的不同存储库

    我不确定如何为 IDEA 项目中的每个不同模块选择不同的 git 存储库 我没有看到任何选项 所有 git 选项似乎只与一个 git 存储库相关 有没有办法区分它们 所以 全部在同一个项目内 Module A gt repo A Modul
  • android apache poi-ooxml 导致构建错误 'app:transformClassesWithDesugarForDebug'

    我的应用程序需要实现 Excel 创建和下载 我使用 Apache POI 的 HSSFWorkbook 来实现该功能 应用程序成功创建了所需的 Excel xls 输出 但是 如果我在 gradle 中包含 apache poi ooxm
  • 我想要一个提交按钮 该按钮提交的值与按钮 上显示的值不同 和
  • 如何在 Linux 上安全地、事务性地替换文件?

    我能想到的替换文件内容的最天真 最糟糕的方法是 f open file txt w f write stuff f close 显然 如果该操作在关闭之前的某个时刻失败 您将丢失原始文件的内容 而不一定完成新内容 那么 什么是完全正确的方法
  • Chef deploy_resource 私有存储库、ssh 部署密钥和 ssh_wrapper

    我在让我的厨师食谱克隆私人仓库时遇到了很多麻烦 好吧 我昨天还可以用 但是在 清理 我的 Vagrant 盒子六次之后 我把它弄坏了 正如你可能猜到的那样 我是一名厨师新手 按照此处的deploy resource指南 我创建了我的depl
  • 检查 NSNumber 是否为分数

    检查是否存在的最佳方法是什么NSNumber是分数吗 NumberIsFraction 0 NO NumberIsFraction 0 5 YES NumberIsFraction 1 0 NO 在边境案件处理和绩效方面 最佳 避免转换为具
  • MongoDB 作为时间序列数据库

    我正在尝试使用 mongodb 作为时间序列数据库 并且想知道是否有人可以建议如何最好地针对该场景进行设置 时间序列数据与股票价格历史非常相似 我收集了来自不同机器的各种传感器的数据 有数十亿个时间戳的值 我想问以下问题 最好来自数据库而不
  • 如何在命名类别中声明私有属性?

    我知道可以通过将类的私有属性放入实现中声明的类的未命名类别中来声明类的私有属性 m 该类的文件 那是not我想做的事 我正在处理一个类的命名类别 该类别为该类添加了一些功能 对于此功能 在我的类别中使用私有属性会对我有很大帮助 因此实现此功
  • 如何修复 C# 中的“使用未分配的局部变量”[重复]

    这个问题在这里已经有答案了 我是 C 新手 我最后的编程语言是 C 我不断收到 Use of unassigned local variable average 这average与之相关的是average 10 using System u
  • Android HttpUrlConnection EOFException

    我想知道 Android 上的 HttpUrlConnection 和 POST 请求是否存在已知问题 我们正在经历间歇性的从 Android 客户端发出 POST 请求时出现 EOFExceptions 重试相同的请求最终会成功 这是堆栈
  • 将 ruby​​ .gem 文件放在哪里以便 Shoes.setup 可以找到它们?

    关于鞋子中的宝石支持 人们提出了很多问题 但没有人回答将它们放在哪里 我在 Windows XP 上有 Shoes Raisins 1134 并且我已经下载dbi 0 4 1 gem我正在尝试让以下内容发挥作用 Shoes setup do
  • 从 Mongo 获取 BinData UUID 作为字符串

    我目前有一些 id 作为 UUID 存储在 Mongo 中 处理所需 他们像这样被返回 id new BinData 3 JliB6gIMRuSphAD2KmhzgQ 将此值转换为字符串以进行调试的简单方法是什么 需要明确的是 应用程序可以
  • 使用 SMOTE 对图像数据进行过采样

    我正在使用 CNN 进行二元分类 数据不平衡 其中正医学图像 负医学图像 0 4 0 6 所以我想在训练前使用SMOTE对正医学图像数据进行过采样 但是 数据的维度是 4D 761 64 64 3 这会导致错误 Found array wi
  • 如何在 Django 中强制用户注销?

    在我的 Django 应用程序中 在某些条件下 我希望能够强制用户通过用户名注销 不一定是当前登录的用户 而是另一个用户 因此 我认为请求方法没有任何有关我要注销的用户的会话信息 我熟悉 django auth 和 auth 注销方法 但需