【问题标题】:handling session Timeout in javascript or server side在 javascript 或服务器端处理会话超时
【发布时间】:2014-09-28 06:19:06
【问题描述】:

我有一个网站,目前我正在使用 Javascript 的客户端处理超时,因此我没有发出请求,我将用户注销,但我看到有人在 SO 上提出相同的方法,我看到一个很大的失误,假设用户打开了 2 个标签。

Tab 1:
www.MYSITE.com/welcome.php

Tab 2: 
www.MYSITE.com/edit_profile.php

现在,如果用户在选项卡 2 上并且他正在那里编辑配置文件,则选项卡 1 处于空闲状态,这意味着用户将被注销/显示警告(您处理空闲时间的方式)。

所以这似乎不一致,在我看来它应该在服务器端,我的方法是否正确?

【问题讨论】:

  • 这似乎真的取决于会话的目的以及您在特定时间后关闭会话的动机是什么。如果这是一个彻底的安全问题,那么您只能在服务器上强制执行 - 期间。如果只是检测一些客户端不活动并且没有直接的安全问题,那么检测客户端上的活动就可以了。
  • @jfriend00 通常我们使用超时来注销这个人..
  • 这有多重要?有安全隐患吗?而且,您是否关心是否打开了两个选项卡,并且当用户在另一个选项卡中进行交互时,其中一个会导致注销?这一切都取决于对您的应用程序来说什么是重要的。没有别的答案了。
  • @jfriend00 正确..

标签: javascript php session settimeout session-timeout


【解决方案1】:

一种方法可能是,

对于 Ajax,每当您向服务器发送任何请求时,您都可以在服务器上使用 isset($_SESSION['variable']) 检查会话是否过期,发送响应 SESSION_TIMEOUT & 然后在 ajax 回调中检查此响应。

如果找到,向用户显示消息“会话已过期!” & 重定向到初始页面(可能是登录页面)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-17
    • 2019-09-12
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2013-08-27
    • 2022-07-29
    相关资源
    最近更新 更多