我使用以下代码行让我的浏览器在浏览器关闭时将用户从 Django 管理中注销
SESSION_EXPIRE_AT_BROWSER_CLOSE 设置为 true
我该如何更改它并以这样的方式进行设置,即当用户关闭选项卡时,用户会注销?
请您参考如下方法:
绝对与 Django 无关。它与浏览器如何处理 cookie 更多相关。
如果 cookie 没有过期日期(Expires 属性)或 Max-Age,会发生什么情况? ,浏览器将它们视为 session cookie。这意味着当您退出浏览器 session 时,即当您关闭浏览器时,浏览器将删除该 cookie。
并且由于关闭选项卡不等于退出浏览器,浏览器不会删除 session cookie。
更新:如果某人确实需要在选项卡关闭时将用户注销,这可以实现,好吧,有点。
您可以将 session cookie 的期限设置为一个较小的数字,例如 10 分钟。当用户打开选项卡时,您每隔 10 分钟刷新一次 cookie(即发出 AJAX 请求以获取新的 cookie)。
当用户关闭标签时,他们的 session 将在接下来的 10 分钟内自动过期。
这是一个有点复杂的设置,但我已经在银行网站等上看到过它的实现。由您决定是否值得为您的网站这样做。
