【问题标题】:django logout or delete use session after user is deleted删除用户后django注销或删除使用会话
【发布时间】:2015-09-07 16:15:51
【问题描述】:

假设我有一个用户 abc 登录到我的 django 系统。现在,当我看到我的个人资料或任何需要身份验证的操作时,我可以做到。

现在我从我的数据库中删除了用户 abc 并尝试访问需要身份验证或某些验证的视图,然后它进入无限重定向循环。

但是当我通过/account/logount 注销已删除的用户并访问视图时,它很好。

删除用户后如何退出。

删除用户后如何删除认证?

【问题讨论】:

  • 也许你可以从用户模型的pre_delete信号中的django_session表中删除相关条目

标签: python django


【解决方案1】:

如果您使用默认的 django 会话,您可以从数据库中删除会话。这些存储在django_session 表中。

编辑:

如果您不想再修改数据库,可以使用 django admin 命令清除所有过期会话。 https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-clearsessions

编辑 2:

您也可以在浏览器中删除会话 cookie,方法是打开开发者工具并进入 cookie 存储区并找到会话 cookie 并将其删除。

【讨论】:

  • 它的preity complex方法。我想要是否有任何类型的信号被触发并删除与用户相关的会话并注销用户
  • 我想我当时误解了你的问题。当通过 ORM 删除用户时,应自动处理此问题。我以为你是出于某种原因手动操作的。
  • 我是手动做的。我正在从我的数据库中删除用户,现在当用户被删除时,我希望与它相关的所有会话都应该被删除并且用户应该被注销
【解决方案2】:

在代码调用中删除用户后

from django.contrib.auth import logout 
logout(request)

【讨论】:

  • 是的,我说的是服务器端。在你看来
  • 假设我删除用户并查找已删除用户的个人资料..那么我应该在个人资料视图中编写注销功能吗?我希望当用户从数据库中删除时,它应该自动注销
  • 然后在您的注销视图中,您需要添加他在上面发布的内容。
  • 这取决于删除用户的功能。它是由用户在视图中触发的吗?还是一些服务器端清理过程?
  • 从您的数据库中删除与用户相关的会话。这可能会导致他们不得不再次登录。
猜你喜欢
  • 1970-01-01
  • 2015-01-14
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
相关资源
最近更新 更多