【问题标题】:android webview or browser not deleting session cookies on device rebootandroid webview或浏览器不会在设备重启时删除会话cookie
【发布时间】:2012-04-17 21:05:11
【问题描述】:

当我重新启动我的 android 设备(kindle fire)或终止应用程序时,浏览器或 WebView 的“会话”cookie 似乎没有被删除。这似乎与 Windows 或 MacOS 上的浏览​​器行为完全不同,如果您终止浏览器应用程序,“会话”cookie 就会消失。浏览器进程重新启动后,仅应保留“持久”cookie。 澄清一下,这里的“会话cookie”的含义是服务器设置的没有过期日期的cookie,在响应中使用http头,例如: 设置 Cookie:mycookie=ifmr0846qcsdpeqqkgvuqmc5u7;路径=/ 由于没有指定到期日期,根据我的理解,浏览器通常不会保留这些,让它们保持活动状态直到进程被终止。通常会话 ID 是使用这种类型的 cookie 设置的。

我确信这些不会在设备重启或应用重启时被删除,因为如果我登录到我的网站,建立一个会话(使用非持久性/“会话”cookie 作为会话 ID,在这种情况下名为 PHPSESSID) ,然后重新启动设备并打开浏览器或 WebView 到相同的 url,我仍然登录,这对我来说意味着浏览器仍然发送了服务器在设备重新启动之前设置的相同 PHPSESSID cookie。

谁能解释/确认 android WebViews 或浏览器的这种行为?他们如何准确地管理会话和持久性 cookie?

谢谢。

【问题讨论】:

    标签: android android-webview session-cookies


    【解决方案1】:

    您是对的,会话 cookie 不会在 WebView 的生命周期。如果您发现此问题,您可以 始终清除所有 cookie 或覆盖会话 cookie 显式地使用空值。

    参考:Lifecycle of a session cookie in an Android WebView / CookieSyncManager

    清除会话使用

    CookieManager.getInstance().removeSessionCookie();
    CookieManager.getInstance().removeAllCookie();
    

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 2014-02-21
      • 2013-11-29
      • 2013-11-10
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      相关资源
      最近更新 更多