【问题标题】:Auto log out when url change in browser tab浏览器选项卡中的 url 更改时自动注销
【发布时间】:2012-07-03 16:33:29
【问题描述】:

我需要构建一个大多数银行都使用的功能。哪里..

如果用户已在浏览器选项卡中登录银行帐户并再次更改浏览器的网址并移至其他站点..并通过单击浏览器的“返回”按钮再次进入银行页面..然后银行会自动登录从那里的网站出来的用户。

我认为可能是通过 java 脚本我们可以做到这一点.. 但是,无法理解如何做到这一点。我正在为我的服务器端脚本使用 PHP。这是PHP可以做到的吗..

问候 苏雷什

【问题讨论】:

  • 没有准确的方法来判断用户是否离开页面。
  • @AlexLunix 关于准确.. 不能说什么。但是,我看到大多数银行账户都有这种功能。 EX:城市银行使用该功能
  • @DaveRandom 谢谢!!!。我会做的..

标签: javascript php logout


【解决方案1】:

这不是 java/PHP 问题,而是取决于您要实现的确切行为。

跟踪用户“实时”的唯一方法是通过 javascript。因此,如果您想知道用户何时离开页面,您可以将自己绑定到事件侦听器,然后执行 ajax 调用或类似的操作,使服务器端的会话无效。请记住,用户可能在禁用 JS 的情况下浏览您的网站,因此您需要在服务器端进行后备。

我建议您使用存储机制(内置的 PHP 会话存储或一些外部存储,如 Couchbase 或 Redis、Memached...)在服务器端实现会话存储,并将注销时间设置为正常默认值(如果它类似于银行应用程序,则较低)。

如果您具备基础知识,请使用 JavaScript 来丰富用户体验,例如,在用户注销时显示“倒计时”,并在每次登录时向服务器发送会话刷新 ajax 调用以更新会话用户与网站等进行了交互。

如需更多详细信息,我需要您提出更多要求!

【讨论】:

  • onbeforeunload/onunload 中使用 AJAX,我怀疑是不可靠的。如果请求花费的时间太长或服务器由于某种原因没有响应,我希望浏览器中止/忽略请求,因为浏览器的开发人员会担心网站是否能够在给定页面上“捕获”用户并破坏他们的用户体验。我想说,唯一可靠(ish)的方法是让登录会话超时时间非常短(可能一分钟左右),并使用 ajax 轮询来保持会话处于活动状态,而不是相反。跨度>
  • @DaveRandom 我已经实现了你所说的功能(短登录会话超时)。但是,我也想要这样的功能。
  • @moidaschl 当您在离开到任何其他页面时向服务器发起 AJAX 调用时,可能会发生 b 2 情况。 1. 移动到任何不同的站点。 2. 移动到同一站点的另一个页面。所以,你能告诉我我怎么知道..在删除服务器端的会话之前,用户是想去任何“不同的站点(1)”还是用户想去“同一站点的不同页面(2)”。
猜你喜欢
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 2018-09-05
相关资源
最近更新 更多