2014-09-28 156 views
0

我有一个网站,目前我正在处理客户端使用Javascript的超时,以便我没有要求正在作出我登录用户出,但我见过人所以建议采用相同的方法,并且我发现它有一个很大的延迟,假设用户打开了2个选项卡。处理会话在JavaScript或服务器端的超时

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

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

现在,如果用户在选项卡2,他正在编辑配置文件存在,标签1处于闲置状态,这意味着用户将被注销/显示警告(你现在的样子处理空闲时间)。

所以这似乎并不一致,我认为它应该在服务器端,我的方法是正确的吗?

+0

看来,它确实取决于会话的内容以及在特定时间段之后关闭会话的动机。如果这是一个干/干安全问题,那么你只能在服务器上强制执行 - 期间。如果仅仅是为了检测一些客户不活动并且没有立即的安全问题,那么检测客户端上的活动就很好。 – jfriend00 2014-09-28 06:35:58

+0

@ jfriend00通常我们使用超时时间记录出人。 – Badddy 2014-09-28 06:44:45

+1

这有多重要?是否存在安全隐患?而且,如果有两个选项卡打开,并且一个用户在另一个选项中进行交互时导致注销,您是否关心?这一切都取决于对应用程序重要的内容。除此之外没有其他答案。 – jfriend00 2014-09-28 06:54:58

回答

1

的一种方法是,

在Ajax中,每当你向服务器发送的任何请求,服务器上就可以,如果会话过期使用isset($_SESSION['variable'])检查的情况下,发送SESSION_TIMEOUT &响应然后在Ajax回调,检查此响应。

如果找到了,向用户显示消息'SESSION expired!' &重定向到初始页面(可能是登录页面)。