android webview或浏览器在设备重启时不删除会话cookie

use*_*441 5 android session-cookies android-webview

当我重新启动我的Android设备(kindle fire)或杀死一个应用程序时,似乎浏览器或WebView'会话'cookie不会被删除.这似乎与Windows或MacOS上的浏览器行为完全不同,如果您终止浏览器应用程序,那么'会话'cookie就消失了.浏览器进程重启后,只应保留"持久性"cookie.为了澄清,这里'session cookies'的含义是服务器设置的cookie,没有到期日期,在响应中使用http头,例如:Set-Cookie:mycookie = ifmr0846qcsdpeqqkgvuqmc5u7; path = /由于没有指定过期日期,因此根据我的理解,浏览器通常不会保留这些过期日期,直到进程被终止为止.通常,使用此类型的cookie设置会话ID.

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

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

谢谢.

小智 -1

你是对的,会话 cookie 在 WebView 的生命周期中不会自动过期。如果您遇到此问题,您可以随时清除所有 cookie 或使用空值显式覆盖会话 cookie。

参考:Android WebView / CookieSyncManager 中会话 cookie 的生命周期

清除会话使用

CookieManager.getInstance().removeSessionCookie();
CookieManager.getInstance().removeAllCookie();
Run Code Online (Sandbox Code Playgroud)