jquery 用户关闭选项卡时注销

beq87vna  于 2022-11-22  发布在  jQuery
关注(0)|答案(3)|浏览(120)

在我的Django网站上,我希望在关闭标签页或浏览器时自动退出网站。我的意思是,当我通过关闭标签页而不是使用退出按钮来关闭网站时,在再次输入URL后,我希望看到用户已经退出网站,以强制用户再次输入用户名和密码。
在JQuery中是否有方法处理关闭选项卡?
先谢谢你了。
Edit:onunload和onbeforeunload事件会在重新载入页面时,导致登出使用者。

balp4ylt

balp4ylt1#

将 注销 代码 添加 到 onunload 事件 中 。

window.onunload = function () {
    //logout code here...
}

中 的 每 一 个
在 JQuery 中 , 可以 使用 . unload ( ) 函数 。 记住 , 您 没有 太 多 的 时间 , 因此 您 可以 发送 Ajax 请求 , 但 结果 可能 无法 到达 客户 端 。
另 一 个 技巧 是 打开 一 个 小 的 新 窗口 , 并 在 那里 处理 注销 。

window.open("logout url","log out","height=10,width=10,location=no,menubar=no,status=no,titlebar=no,toolbar=no",true);

格式
如果 您 想 禁止 关闭 窗口 ( 或者 至少 警告 用户 ) , 可以 使用 以下 代码 :

window.onbeforeunload = function(event) {
    //if you return anything but null, it will warn the user.
    //optionally you can return a string which most browsers show to the user as the warning message.
    return true;
}

格式
另 一 个 技巧 是 每 隔 几 秒钟 就 ping 客户 端 。 如果 没有 回复 , 假设 用户 关闭 了 窗口 , 浏览 器 崩溃 或 网络 问题 导致 聊天 会话 结束 。 在 客户 端 , 如果 你 没有 收到 ping 包 , 你 可以 假设 网络 连接 或 服务 器 有 问题 , 你 可以 显示 注销 警告 ( 也 可以 让 用户 重新 登录 ) 。

erhoui1w

erhoui1w2#

在Django的settings.py文件中,你可以添加一个标志:
会话在浏览器关闭时过期=真
这将在浏览器关闭时注销用户。请注意,如果仍有其他选项卡或窗口打开,用户将保持登录状态(浏览器必须完全关闭)。

ssm49v7z

ssm49v7z3#

您可以使用Javascript onunloadonbeforeunload事件。在这些事件中,破坏Django的会话cookie。
当你离开一个网站时,这些事件也会被触发,所以如果这是你真正想要的,要小心并三思。

相关问题