【发布时间】:2023-03-30 00:00:02
【问题描述】:
我有一个网络聊天应用程序,我们正在使用 jQuery。当用户空闲或在 15 分钟内没有点击浏览器时,它应该自动销毁该特定用户的会话并将他重定向到登录页面。我该怎么做?
【问题讨论】:
我有一个网络聊天应用程序,我们正在使用 jQuery。当用户空闲或在 15 分钟内没有点击浏览器时,它应该自动销毁该特定用户的会话并将他重定向到登录页面。我该怎么做?
【问题讨论】:
你在服务器端使用什么语言?
应使用您在服务器端使用的任何语言销毁会话...
但让我举个例子,说明您的应用程序可能的流程。
正如下面的答案所述,是的,您可以销毁 cookie 或会话客户端,但我不会依赖它,javascript 并不总是可用。您必须将其留给服务器来销毁会话并清理所有数据。您必须弄清楚会话 cookie 的外观如何才能了解您使用的技术......
但为了清楚起见,请提供有关所用技术的更多信息,也许我可以给你一个正确的答案。
【讨论】:
你需要销毁 cookie - there is plugin
例如在 java 中大部分时间它的 cookie 名为“JSESSIONID”
您需要查看网站制作了哪些 cookie,并使用会话信息将其杀死。
【讨论】:
您可以使用 AJAX 指向注销页面,当鼠标 15 分钟没有移动时,重定向到登录页面
【讨论】:
您的服务器应该跟踪会话生命周期,而不是浏览器。浏览器所拥有的只是一个引用会话 ID(或类似的东西)的 cookie。
是的,如果您要销毁 cookie 或 cookie 中的会话 ID,则用户在下次联系服务器时似乎已注销。但是,依赖浏览器进行会话管理是获得不一致结果的好方法。
会话存在于您的服务器上,客户端仅引用它。您必须在服务器上对其进行管理,以使其可靠。例如,在会话中保存“lastContactTimestamp”的时间戳。当客户端发出请求时,检查当前时间戳是否超过“lastContactTimestamp”的 15 分钟。如果是,则重定向客户端重新登录。如果不是,将“lastContactTimestamp”更新为当前时间戳,然后提供客户端的请求。
【讨论】:
使用元刷新重定向,这将在 900 秒内将浏览器自动重定向到 somelogOutUrl。这假设您将在这段时间内刷新页面。如果您的应用程序主要使用 ajax 调用来获取新内容并且很少刷新整页,那么您将需要另一个选项。
<meta http-equiv="refresh" content="900;url=somelogOutUrl">
【讨论】: