2012-01-18 38 views
7

Tôi muốn đăng xuất tài khoản twitter của mình bằng cách xóa các cookie do nó tạo ra. Tôi có thể truy xuất các tập tin cookie được tạo ra bởi twitter sử dụng mã:Làm cách nào để đăng xuất tài khoản twitter bằng cách xóa cookie?

String twit_cookie = getCookie ("http://www.twitter.com"); 

Nhưng làm thế nào tôi có thể xóa các tập tin cookie chỉ được tạo ra bởi twitter vì removeAllCookie() xóa tất cả các cookie được tạo ra bởi trình duyệt. Làm cách nào để xóa cookie cụ thể theo URL hoặc theo tên ???

Vui lòng trợ giúp ...

+3

Thanh toán các câu trả lời ở đây: http://stackoverflow.com/questions/2834180/how-to-remove-cookies-using-cookiemanager-for-a-specific-domain –

Trả lời

3

Lớp CookieManager có phương thức setCookie. Các bạn đã thử nó thích:

setCookie("http://www.twitter.com", null); 

Hoặc có lẽ

setCookie("http://www.twitter.com", "auth_token=''"); 
3

Bạn có thể sử dụng phương pháp CookieManager#setCookie(String url, String value). Như đã nêu trong tài liệu:

Đặt cookie cho URL đã cho. Bất kỳ cookie hiện có nào có cùng một máy chủ, đường dẫn và tên sẽ được thay thế bằng cookie mới.

Cách "rõ ràng nhất" là đặt tất cả cookie do twitter tạo ra thành hết hạn (thời gian trong quá khứ). Mã từ this answer gần như đúng, ngoại trừ ngày trong tương lai.
đang Modified:

final String domain = "http://www.twitter.com"; 
CookieSyncManager.createInstance(this); 
CookieManager cookieManager = CookieManager.getInstance(); 
String cookiestring = cookieManager.getCookie(domain); //get all cookies 
String[] cookies = cookiestring.split(";"); 
for (int i=0; i<cookies.length; i++) { 
    String[] cookieparts = cookies[i].split("="); //split cookie into name and value etc. 
    // set cookie to an expired date 
    cookieManager.setCookie(domain, cookieparts[0].trim()+"=; Expires=Wed, 31 Dec 2000 23:59:59 GMT"); 
} 
CookieSyncManager.getInstance().sync(); //sync the new cookies just to be sure 
+0

gì về điều này ? "Cookie được đặt không được hết hạn và không phải là cookie phiên, nếu không cookie sẽ bị bỏ qua". http://developer.android.com/reference/android/webkit/CookieManager.html#setCookie(java.lang.String, java.lang.String) – trante

+0

@trante [Câu trả lời này] (http: // stackoverflow. com/a/11621738/2829009) nói rằng tài liệu sai và hoạt động với cookie đã hết hạn. Nếu nó không hoạt động, chỉ cần thiết lập các cookie trong một vài giây trong tương lai, để nó hợp lệ nhưng hết hạn sau một thời gian ngắn. – Manu

Các vấn đề liên quan