0

用户正在访问该网站并打开了多个选项卡。

会话应在以下情况下保持活动状态:
任何选项卡处于活动状态(鼠标移动和键盘上的击键)。

在以下情况下,会话应该终止并自动重定向到登录页面:
所有选项卡都处于非活动状态(没有鼠标移动,没有击键)

你能提示我怎么做吗?

4

1 回答 1

0

这是一个肮脏的解决方案,我还没有尝试过,但这在理论上可行:

  1. 当您检测到页面上的活动时,在数据库表中保存一个标志以表示页面上有活动(可能还需要时间戳来帮助您确定活动发生多长时间以及用户标识符以确保它是正确的会话)。根据您希望保存的频率,您可以使用这样的简单脚本 ( https://stackoverflow.com/a/3877867/987905 ) 来跟踪最近的击键或您想要跟踪的任何内容,然后一段时间后(比如 5 分钟),如果有活动,决定将其保存到数据库中(这样你就不会在每次检测到活动时都保存数据库)。
  2. 在检查会话是否处于活动状态期间,检查数据库中的标志和时间戳,以查看会话是否在该用户登录的任何实例上报告为活动状态。如果是,请通过您的 Keep 重新激活会话活着,或重新认证。

同样,我还没有尝试过,但最近一直在考虑。这似乎是一个可行的解决方案,只是带来了在幕后进行数据库保存/调用的缺点,可能会损害性能。

于 2013-07-11T14:15:53.650 回答