在浏览器关闭时删除会话

时间:2012-09-09 20:45:07

标签: python django session cookies

我将在Django的会话cookie中存储大量信息。我希望这些数据在用户访问网站的整个过程中持续存在。当他离开时,应删除数据,但会话必须保持不变。我不希望用户每次返回网站时都需要登录。

我找到了每次用户离开网站时清除整个会话cookie的方法,但理想情况下我只想删除我明确设置的cookie的选定部分。有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

你有点困惑。

“Django的会话cookie”中存储的唯一内容是ID。该ID指的是存储在会话后端内的数据:这通常是数据库表,但可能是文件或缓存位置,具体取决于您的Django配置。

现在唯一一次更新数据的时候是Django修改数据的时间。您不能自动使数据过期,除非cookie本身过期(在这种情况下整个数据集在会话存储中保留,但不再与客户端关联)或者在服务器上运行修改会话的进程编程。

当用户离开网站或关闭浏览器时,无法从服务器端告知。因此,管理这个问题的唯一方法是在服务器上运行一个cron作业,该作业会在两小时前获取上次修改过的会话,然后迭代删除要删除的数据。