我目前正在JSF中实现“自动登录”机制,请参见
我已经测试了以下情况:
用户登录时没有“记住我”,然后直接关闭浏览器而无需单击注销(如果单击注销,则cookie的maxAge将设置为0)。以后,如果用户再次加载页面,则在过滤器中,cookie出现在请求中(正常,因为在关闭浏览器时cookie maxAge不会更改为0),并且用户会自动登录,而不是我想要的是。
有办法解决吗?Cookie和会话之间有什么关系?我使用会话范围。据我所知,关闭浏览器时会话不会被破坏,这取决于服务器的决定。因此,我不能使用@PreDestroy。我也不能使用Jquery.unload,因为用户也只能关闭选项卡,而不能关闭浏览器。同样在我的应用程序中,可以同时打开多个选项卡...
有什么建议么?
您似乎希望cookie在打开的浏览器实例中一直存在。也就是说,您希望Cookie能够与浏览器会话一样长。
只要指定最长使用期限,即可将其设为会话Cookie -1
。然后,cookie将与浏览器实例一样有效。
关于HttpSession
和cookie之间的关系,请转到servlet如何工作?实例化,会话,共享变量和多线程。关键区别在于HttpSession
它还具有服务器管理的超时。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句