我正在使用 grails 1.3.5,当用户关闭浏览器或打开我的应用程序的所有选项卡时,我需要自动从我的应用程序中注销用户。
问问题
863 次
1 回答
4
虽然没有特别可靠的方法可以做到这一点(在任何Web 框架中,而不仅仅是 Grails),但有一些相当老套的方法可以接近这一点,尽管有一些巨大的权衡。
通常,由于您有一个默认会话超时,因此当他们的会话由于未收到与其会话关联的请求而到期时,用户将被注销(通常)。此行为可以根据您的安全环境进行更改,但我们假设您使用的是(合理的)默认值。
当您的应用程序在其中打开时没有窗口/选项卡时,此会话到期注销可用于模拟注销它们。为此,您可以使用一小段 JavaScript,以您指定的任何时间间隔不断“ping”您的服务器,以保持会话“活动”并保持它们处于登录状态。设置这些 ping 的紧密程度是负载之间的权衡您的服务器以及他们可以关闭浏览器并重新打开它并仍然保持登录状态的时间窗口。
就像我说的,这很hacky,但它很实用。
于 2012-08-23T15:45:41.037 回答