javascript - 使用 JavaScript 的 session_destroy()

标签 javascript php jquery ajax session

我正在寻找 JavaScript 代码来销毁不活跃的用户 session 。 (用于实时聊天网站)

到期时间: 该网站每 5 分钟检测一次用户的事件,然后使用上次事件时间戳更新数据库。因此,如果用户从 2 分钟前开始就没有写入内容,则上次事件时间戳将为 time()-120 (120=2 分钟)

现在我希望 js 代码可以检测最后一次事件时间戳是否超过 300 秒(5 分钟,以秒为单位)之前,以销毁非事件用户的 session 。

使用 php 会很容易,只需要刷新页面,然后用户就会注销。是否有机会在不刷新页面的情况下使用 javascript 执行此操作?如果处于非事件状态 -> 销毁 session 并自动注销,因此用户无法再写入。

谢谢。

最佳答案

session 是一个后端概念,不能用前端 Javascript 直接控制。 session 是指存储在服务器上并以某种方式(通常使用 session cookie)链接到前端用户的信息。

您可以做的就是删除 cookie 并等待 session 在服务器上终止,或者编写一个立即使 session 失效的 PHP 脚本并通过 AJAX 调用该脚本。无论哪种方式,您都必须使用 Javascript 更改 UI,让用户知道他们已注销,例如通过禁用文本输入并停止轮询新消息的脚本。

另请注意,在没有警告的情况下终止空闲用户的 session 是糟糕的用户体验,并且会惹恼您的用户。至少提前通知他们,由于不活动,他们的 session 将在两分钟内终止,以便他们可以使用react以保持在线。

关于javascript - 使用 JavaScript 的 session_destroy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33844641/

相关文章:

javascript - 如何将单选按钮与输入文本字段绑定(bind)?

php - 在链接到数据库的 PHP 中计算测验分数

javascript - Bootstrap : How to prevent modal dialog stacking on top of open modal

javascript - 为什么 jquery 验证不适用于附加元素?

javascript - 如何用后备选项替换字符串?

javascript - 使用相同的数据集绘制各种符号

javascript - 表格的实时过滤

javascript - 使用 JSON 对象填充 KendoGrid

php - 使用javascript获取url参数并将其发送到php

PHP 到 jquery dialog() 交互问题。