【问题标题】:Why deleting session record in django server cache doesn't make me logout?为什么删除 django 服务器缓存中的会话记录不会让我注销?
【发布时间】:2019-12-30 05:41:22
【问题描述】:

我将会话存储在 redis 缓存中

SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"

我从缓存中删除记录,键是“django.contrib.sessions.backends.cache”+会话键。

但是我重新加载页面后仍然登录,只是获得了一个新会话。为什么我从缓存中删除会话后没有注销?

【问题讨论】:

  • 当您说您没有退出时,您的意思是您仍然可以访问需要登录的视图吗?
  • 是的,一切都保持不变

标签: django session redis


【解决方案1】:

从 Django 1.8 或更高版本开始,任何对 flush() 的调用都会注销用户。来自docs

如果您检查 django logout 功能,它会使用 flush() 注销用户而不是删除它。这是link

【讨论】:

  • 我的问题是我想注销一个不是当前会话的会话。因为我从另一个域调用注销 url。有什么好办法解决吗?
猜你喜欢
  • 2015-05-19
  • 2012-11-25
  • 1970-01-01
  • 2015-11-23
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多