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

标签 android android-webview session-cookies

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

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

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

谢谢。

最佳答案

You are correct, session cookies do not expire automatically in the lifecycle of a WebView. If you are seeing issues with this, you can always clear all of your cookies or overwrite your session cookies explicitly with an empty value.

引用:Lifecycle of a session cookie in an Android WebView / CookieSyncManager

清除 session 使用

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

关于android webview 或浏览器在设备重启时不删除 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006334/

相关文章:

java - 隐藏和显示 Adview

android - 如何注入(inject) SyncAdapter

java - 无法运行简单的安卓计算器应用程序

Swift Vapor Cookies 不工作

javascript - 如何避免从 ExpressJS 抛出 400 错误

php - 通过 session 安全访问 "Stay Loggedin"[仍然需要答案]

安卓 Ant : Build release with Debug option

android - 我的应用显示与 Nexus 5 不兼容?

android - 使用浏览器 Intent 时传递 header

Android Webview css 错误