1

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

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

4

1 回答 1

2

你有点把事情搞糊涂了。

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

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

当用户离开网站或关闭浏览器时,服务器端无法得知。因此,管理此问题的唯一方法是在您的服务器上运行一个 cron 作业,该作业获取最后一次修改(例如)两小时前的会话,并遍历它们以删除您要删除的数据。

于 2012-09-09T21:23:22.420 回答