2012-01-18 7 views
7

Quiero cerrar la sesión de mi cuenta de Twitter eliminando las cookies creadas por ella. Soy capaz de retrive las cookies creadas por el uso de Twitter Código:¿Cómo cerrar la sesión de la cuenta de Twitter eliminando las cookies?

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

Pero, ¿cómo puedo eliminar sólo las cookies creadas por Twitter porque removeAllCookie() borra todas las cookies creadas por el navegador. ¿Cómo puedo eliminar la cookie específica por URL o por nombre?

Por favor ayuda ...

+3

Pedido las respuestas aquí: ¿Qué hay de http://stackoverflow.com/questions/2834180/how-to-remove-cookies-using-cookiemanager-for-a-specific-domain –

Respuesta

3

clase CookieManager tiene un setCookie método. ¿Lo has probado como:

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

O quizás

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

Usted puede utilizar el método CookieManager#setCookie(String url, String value). Como se indica en los documentos:

Establece una cookie para la URL dada. Cualquier cookie existente con el mismo host, ruta y nombre serán reemplazados por la nueva cookie.

La manera "más clara" es establecer que todas las cookies creadas por twitter caduquen (una vez en el pasado). El código de this answer es casi correcto, excepto que la fecha es futura.
código de modificación:

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

esta ? "La cookie configurada no debe haber caducado y no debe ser una cookie de sesión, de lo contrario será ignorada". http://developer.android.com/reference/android/webkit/CookieManager.html#setCookie(java.lang.String, java.lang.String) – trante

+0

@trante [Esta respuesta] (http: // stackoverflow. com/a/11621738/2829009) dice que los documentos están equivocados y funciona con las cookies caducadas. Si no funciona, simplemente configure las cookies en algún momento, algunos segundos en el futuro, para que sea válida, pero caduque después de un corto tiempo. – Manu

Cuestiones relacionadas