我使用的是Grails 1.3.5,我需要在关闭浏览器或打开应用程序的所有标签时自动从我的应用程序中注销用户。
答案 0 :(得分:4)
虽然没有特别可靠的方法来执行此操作(在任何 Web框架中,而不仅仅是Grails),但有一些相当黑客的方法可以关闭 ,虽然有一些大量的权衡。
通常,由于您具有默认会话超时,因此用户将在其会话到期时因未收到与其会话关联的请求而退出(通常)。可以根据您的安全环境更改此行为,但我们假设您使用(合理的)默认值。
此会话到期注销可以是 ab ,用于模拟在没有打开应用程序的窗口/标签时将其记录下来。要做到这一点,你可以拥有一小段JavaScript,它会在你指定的任何时间间隔内“ping”你的服务器,以保持会话“活着”并让他们保持登录状态。你设置这些ping的紧张程度是负载之间的权衡。您的服务器以及他们可以关闭浏览器并重新打开它并仍然保持登录状态的时间窗口。
就像我说的那样,非常 hacky,但它很实用。