如何在Grails中实现超时页面

时间:2011-08-12 18:03:57

标签: jquery grails session-timeout

我需要一些帮助处理Grails应用程序中的超时。

上下文:在我的Grails应用程序中,我显示了敏感信息。显然这意味着有人无法保持登录状态,如果他们忘记退出,我需要将其计时。我现在实现的是这样一个系统:

- 当用户成功登录时,会话变量isValid将设置为true。

- 在我的所有控制器中,如果调用了一个可以渲染或重定向到gsp的方法,我会检查该值。如果isValid在任何时候为空,则会立即将它们重定向到错误页面。

- 每个gsp都有一个jquery超时函数,如果用户超时并将isValid设置为false(理论上应该阻止他们使用该应用程序),会将用户重定向到超时错误页面。

重定向所有工作正常。我遇到的问题是,当用户超时时,他们仍然可以使用后退按钮返回到他们所在的最后一页的缓存版本。显然这违背了超时的目的。

问题:是否有人知道如何阻止用户离开超时页面或保证一旦超时,他们将始终被重定向到超时页面?

由于

1 个答案:

答案 0 :(得分:1)

  

重定向所有工作正常。我遇到的问题是,当用户超时时,他们仍然可以使用后退按钮返回到他们所在的最后一页的缓存版本。显然这违背了超时的目的。

为什么不在页面加载时将一个AJAX请求添加回你的应用程序(当用户按下浏览器中的后退按钮时应该触发),验证会话是否仍然有效,如果没有将用户重定向到超时页面?应该够简单。

此外,如果信息是敏感的,请确保您设置缓存/内容过期相关的HTTP标头,以便浏览器知道它不应该缓存页面。这里的缺点是某些浏览器不完全尊重这些设置。