在javascript或服务器端处理会话超时


handling session Timeout in javascript or server side

我有一个网站,目前我正在使用Javascript的客户端上处理超时,因此我没有提出任何请求。我将用户注销,但我在so上看到有人提出了同样的方法,我看到其中有一个很大的失误,假设一个用户打开了两个选项卡。

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

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

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

一种方法可以是

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

如果发现此错误,请向用户显示消息"SESSION expired!"&重定向到初始页面(可能是登录页面)。