Ich habe eine Android-Anwendung, die Anfragen an meinen Webserver sowohl über ein WebView als auch über einen HttpClient stellt. Ich synchronisiere Cookies zwischen den beiden mit einem CookieSyncManager. So weit, ist es gut.Lebenszyklus eines Session-Cookies in einem Android WebView/CookieSyncManager
Wenn meine Anwendung startet (innen onResume()), betreiben ich ein Stück Logik ähnlich den folgenden:
if (appHasBeenIdleFor30Minutes()) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
CookieSyncManager.getInstance().sync();
}
Dieses korrekt alle Session-Cookies setzt, die von den Benutzern früheren Sitzung festgelegt wurde. Meine Frage ist: wird dieses Verhalten regelmäßig von selbst passieren? Diese Frage (android webview or browser not deleting session cookies on device reboot) scheint darauf hinzudeuten, dass dies nicht der Fall ist. Wenn ich den cookie-sync'd HttpClient über einen Service verwende, werden Session-Cookies nicht gelöscht, was zu merkwürdigem serverseitigen Verhalten führt.
Ich konnte keine konkrete Dokumentation über den Lebenszyklus von Session-Cookies (Ablaufzeit = 0) in einem WebView/CookieSyncManager finden - hat sonst noch jemand mehr Glück gehabt?
Ihre Frage und Antwort hat mir geholfen, aber ich würde Ihnen vorschlagen, dass Sie Cookies auf der Serverseite aus Sicherheitsgründen ablaufen. Jemand könnte den Cookie-Wert abfangen, und selbst wenn Sie ihn auf dem Client ablaufen lassen, könnte derselbe Wert verwendet werden, um die Sitzung zu entführen. Beachten Sie auch, dass Sie Ode über den Benutzer nicht vertrauenswürdig betrachten sollten und sie dieses Verhalten ändern könnten, indem Sie Ihre apk ändern oder sogar etwas wie Xposed Framework verwenden. – PSIXO