代码之家  ›  专栏  ›  技术社区  ›  Joel Martinez

打开多个选项卡时自动注销

  •  4
  • Joel Martinez  · 技术社区  · 14 年前

    我们已经实现了一个类似于本文描述的系统 other SO post . 基本上,如果用户在14分钟内不做任何事情,我们会提示他们退出。如果他们单击“保持我的登录”,我们会执行一个Ajax请求来保持他们的会话活动,否则,他们会在一分钟后重定向到注销页面。

    它工作得很好,并且与mint.com和bankofamerica.com等网站使用的类似系统保持一致。唯一的问题是,我们的应用程序的用户倾向于打开多个选项卡来来回引用不同的数据块。所以问题是,他们可能在一个选项卡中积极工作,但是另一个选项卡超时并将其注销。这会导致用户在不期望会话超时时突然超时。顺便说一句,mint.com也有同样的版本。

    所以我想知道是否有人有什么想法来对付这个?

    我有一个想法,每个请求都可以设置一个“上次活动时间”cookie。当自动注销时,服务器可以检查上一次的活动时间,如果是最近的活动时间,则避免将其注销。当然,手动注销会忽略这个cookie,因此如果用户想注销,他可以随时这样做。但是,我担心这可能会暴露出某种我目前无法看到的安全风险。思想?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Sjoerd    14 年前

    在显示弹出窗口之前,请询问服务器用户上次请求的时间。