Tôi có một ứng dụng Android yêu cầu máy chủ web của tôi qua cả WebView và HttpClient. Tôi đồng bộ hóa cookie giữa hai người sử dụng CookieSyncManager. Càng xa càng tốt.Vòng đời của cookie phiên trong Android WebView/CookieSyncManager
Khi ứng dụng của tôi bắt đầu (bên trong onResume()), tôi chạy một mảnh của logic tương tự như sau:
if (appHasBeenIdleFor30Minutes()) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
CookieSyncManager.getInstance().sync();
}
này reset một cách chính xác bất kỳ cookie phiên đã được thiết lập từ phiên trước đó của người dùng. Câu hỏi của tôi là: hành vi này có xảy ra định kỳ không? Câu hỏi này (android webview or browser not deleting session cookies on device reboot) dường như gợi ý rằng nó không. Khi tôi sử dụng HttpClient cookie-sync'd thông qua một Service nó xuất hiện rằng các cookie phiên không được xóa, do đó dẫn đến hành vi phía máy chủ lạ.
Tôi không thể tìm thấy tài liệu cụ thể về vòng đời của cookie phiên (thời gian hết hạn = 0) bên trong một WebView/CookieSyncManager - có ai khác có may mắn hơn không?
Câu hỏi và trả lời của bạn đã giúp tôi nhưng tôi sẽ đề xuất với bạn rằng bạn hết hạn cookie ở phía máy chủ vì những cân nhắc về bảo mật. Ai đó có thể chặn giá trị cookie và thậm chí bạn có thể hết hạn giá trị trên cùng một khách hàng có thể được sử dụng để chiếm đoạt phiên. Cũng lưu ý rằng bạn nên xem xét ode trên người dùng không tin cậy và họ có thể thay đổi hành vi này bằng cách thay đổi apk của bạn hoặc thậm chí sử dụng một cái gì đó như khung Xposed. – PSIXO