【发布时间】:2016-03-15 13:01:13
【问题描述】:
我们有一个 SaaS 应用程序,其中浏览器使用名为 session-id 的 cookie 连接到服务器端会话。此 cookie 的值是第一次看到任何给定浏览器时创建的 UUID v4 标识符。我们将 cookie 发送为
Set-Cookie: session-id=ebbaf531-8763-4a59-b086-d946124f8d64; Path=/; HttpOnly; Secure;
除了在 Windows Phone 8.1 上运行的 Internet Explorer 似乎存在 cookie 突然丢失的问题之外,其他一切似乎都很好。
导致cookie丢失的案例:
- 在手机上切换或启动占用大量 RAM 的任何其他应用程序。
- 关闭浏览器(按住返回按钮 2 秒,点击浏览器屏幕截图上的 (X))。
- 重启手机
案例 1 尤其成问题,因为它对用户来说像是随机故障。在这种情况下,Internet Explorer 将重新加载页面,并且页面重新加载的 GET 请求缺少 cookie。我知道案例 2 和案例 3 是预期的行为,因为我在上面使用了会话 cookie。
我也尝试使用
设置永久(28 天)cookieSet-Cookie:session-id=ebbaf531-8763-4a59-b086-d946124f8d64; Path=/; HttpOnly; Secure; max-age=2419200; Domain=peda.net
同样的行为仍然存在。请注意,此“永久”cookie 不会在浏览器重新启动或手机重新启动时结束。
是否有已知的解决方法可以避免随机丢失 cookie? 我正在尝试让用户选择加入永久会话,并且所有其他浏览器都可以正常工作。 Windows Phone 8.1 上的 Internet Explorer 是最后一个障碍。我已经尝试添加和删除属性domain,但没有任何效果。
【问题讨论】:
标签: internet-explorer cookies windows-phone-8 setcookie