我使用 Jquery Mobile、Spring MVC 和 Spring Security 开发了一个移动应用程序。
每当我登录应用程序时,都会生成 Cookie 并将其存储在浏览器中。
每当我注销应用程序时,会话就会被破坏,但 Cookie 存在于浏览器中。
我的问题是,如果浏览器中有 Cookie,则应用程序未在运行 IOS 6.0.1 的 iPad 上运行。
当我按下注销以及销毁会话时,如何从浏览器中删除 cookie。
我使用 Jquery Mobile、Spring MVC 和 Spring Security 开发了一个移动应用程序。
每当我登录应用程序时,都会生成 Cookie 并将其存储在浏览器中。
每当我注销应用程序时,会话就会被破坏,但 Cookie 存在于浏览器中。
我的问题是,如果浏览器中有 Cookie,则应用程序未在运行 IOS 6.0.1 的 iPad 上运行。
当我按下注销以及销毁会话时,如何从浏览器中删除 cookie。
您可能希望delete-cookies
在注销处理程序中使用该属性进行会话管理。我从文档中引用:
<http>
<!-- ... -->
<logout delete-cookies="JSESSIONID" />
</http>
您可以使用昏迷指定多个厨师。但是文档中也有警告:
不幸的是,这不能保证适用于每个 servlet 容器,因此您需要在您的环境中对其进行测试
另外,考虑代理:
如果您在代理后面运行应用程序,您还可以通过配置代理服务器来删除会话 cookie。例如,使用 Apache HTTPD 的 mod_headers,以下指令将通过在对注销请求的响应中使 JSESSIONID cookie 过期来删除它(假设应用程序部署在路径 /tutorial 下):
<LocationMatch "/tutorial/j_spring_security_logout">
Header always set Set-Cookie "JSESSIONID=;Path=/tutorial;Expires=Thu, 01 Jan 1970 00:00:00 GMT"
</LocationMatch>