【问题标题】:Run method on session expire Django会话过期Django上的运行方法
【发布时间】:2014-10-01 15:23:44
【问题描述】:

我正在使用 session 来存储一个对象 id 及其描述,这个实例在某人的会话中使用时应该被所有其他用户阻止,我想在他关闭浏览器后释放用户对象,现在我知道有一个配置可以在浏览器关闭时过期会话,如果有任何入口点可以添加一些自定义代码,我只是在徘徊

我想要达到的目标是

def OnSessionExpire(???):
     #release my objects

我搜索了周围但没有找到答案,有人可以在这里提供帮助吗?我正在使用后端会话模式

谢谢!

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

    当浏览器关闭时,Django 根本不做任何事情。 Django 甚至不知道——它怎么可能:Django 唯一知道你在浏览器中所做的事情是当你向服务器发出请求时,但关闭浏览器与发出请求相反。

    浏览器关闭时会话到期是会话 cookie 的一个属性,而不是 Django 所做的任何事情。它只是意味着 cookie 设置了一个标志,告诉浏览器在关闭时不要保留它。实际的会话数据保留在 Django 的会话存储中,直到您明确清除它为止,但由于 cookie 已被删除,因此无法访问。

    因此,其结果是无法明确告知会话何时结束。您唯一能做的就是在会话打开时发送常规的 keepalive 信号(例如通过 Ajax),并在您有一段时间没有看到任何信号时采取行动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2019-11-27
      • 2020-08-01
      相关资源
      最近更新 更多