为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 django 中注销用户(没有请求)

如何在 django 中注销用户(没有请求)

慕田峪9158850 2021-07-06 17:33:16
在 Django 中,我可以使用以下命令注销用户:from django.contrib.auth import logout logout(request)但是,我将如何手动注销使用 - 例如,我想“将用户从所有选项卡中注销” - 也就是说,如何在我的数据库中刷新该用户的所有会话?
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您可以遍历数据库中的所有会话,解码所有会话,并删除属于该用户的会话。但它很慢,特别是如果您的网站流量很高并且有很多会话。

如果您需要更快的解决方案,您可以使用会话后端来查询和获取特定用户的会话。在这些会话后端中,Session 有一个指向 User 的外键,因此您不需要遍历所有会话对象:

使用这些后端,可以在一行代码中删除用户的所有会话:

user.session_set.all().delete()

免责声明:我是django-qsessions.


查看完整回答
反对 回复 2021-07-28
  • 3 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信