3

如果他/她关闭了选项卡(他/她登录帐户的选项卡),我将如何自动登录用户。我知道使用 cookie 可能是可行的,但我们如何通过 Sessions 实现这一点?

4

2 回答 2

8

您不能保证在窗口关闭时用户会被注销,因为您依赖于页面正常关闭。如果浏览器硬崩溃,Javascript 将无法执行。

我建议在 AJAX 中实现 Javascript 代码,在窗口卸载时调用注销页面,这在大多数情况下都可以工作。

对于其他情况,您应该降低会话超时限制。

于 2013-08-01T14:41:57.673 回答
5

取决于你想有多严格。

如果您需要“即时”注销,那么最简单的方法是使用 AJAX 每隔 30 秒到 1 分钟 ping 您的服务器,以保持会话处于活动状态。这将导致大量开销增加服务器上的负载,但这是立即让某人离开的唯一可靠方法。

同样的原则将适用于更长的时期。比如说30分钟。您可以执行本主题中所说的操作并在 30 分钟后将某人注销,或者再次使用 AJAX每 10 到 15 分钟ping 服务器一次,并在用户在页面上时保持会话处于活动状态。

它可能没有更多的东西。

就像@thatidiotguy 说的那样,您可以实现窗口卸载事件来处理用户退出,但您必须非常小心——如果用户打开了 2 个浏览器窗口怎么办?如果他同时查看 2 个页面,您不想让他退出。

于 2013-08-01T14:47:58.337 回答