我正在编写一个本质上是客户端Web应用程序的网站,即页面上的所有内容都由脚本填充,其中包含来自ajax API的数据。用户还将使用一组API登录和注销。
我的问题是如何处理以下(但不是非常极端)的用例:
理想情况下,在步骤3中应该有一些方法,当用户点击在标签B中注销时,标签A也会自动退出。
可以在步骤5中注销选项卡A(GMail这样做),但我认为应该有更好的方法。即使在步骤5中检查也是非常重要的,因此对于这样的设计,每个API必须确切地知道脚本正在请求哪个用户的数据,否则下面的用例会产生不正确的输出。
(1-3)与上述相同。
是否有一种常见的做法可以防止出现这类问题?感谢。
添
答案 0 :(得分:2)
ajax响应应指示用户已注销的错误情况;在客户端,检测此错误并执行适当的操作。显然这仅在 ajax响应时才有效,因此您可能希望实现某种“听力”机制,即客户端每隔几秒就向服务器发送一次类似ping的ajax消息。当您注销时,服务器将通过“用户注销”错误响应心跳,并且客户端可以进入“未登录”模式。
答案 1 :(得分:0)
我认为没有,因为页面(标签)之间的这种通信将是一个重大的安全漏洞。 但是,您可以通过让每个页面(选项卡)轮询服务器以查看会话是否仍然有效来实现相同的效果。或者使用其中一种事件处理技术,例如long-polling或iframe中的流媒体。