【问题标题】:How to logout twitter account by deleting cookies?如何通过删除 cookie 注销 Twitter 帐户?
【发布时间】:2014-08-13 17:03:20
【问题描述】:

我想通过删除其创建的 cookie 来注销我的 Twitter 帐户。我可以使用代码检索 twitter 创建的 cookie:

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

但是我怎样才能只删除 twitter 创建的 cookie,因为 removeAllCookie() 会删除浏览器创建的所有 cookie。如何通过 URL 或名称删除特定的 cookie???

请帮忙...

【问题讨论】:

标签: android android-emulator


【解决方案1】:

CookieManager 类有一个方法 setCookie。你有没有试过这样:

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

或许

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

【讨论】:

    【解决方案2】:

    您可以使用方法CookieManager#setCookie(String url, String value)。如文档中所述:

    为给定的 URL 设置一个 cookie。任何具有相同主机、路径和名称的现有 cookie 都将被新 cookie 替换。

    “最清晰”的方法是将 twitter 创建的所有 cookie 设置为过期(过去的某个时间)。 this answer 的代码几乎是正确的,只是日期是将来的。
    修改代码:

    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
    

    【讨论】:

    • 这个怎么样? " 设置的 cookie 不能过期,也不能是会话 cookie,否则会被忽略。" developer.android.com/reference/android/webkit/…, java.lang.String)
    • @trante This answer 说文档是错误的,它适用于过期的 cookie。如果它不起作用,只需将 cookie 设置为未来几秒后的某个时间,以便它有效但在短时间内过期。
    猜你喜欢
    • 1970-01-01
    • 2018-03-18
    • 2021-01-06
    • 1970-01-01
    • 2012-10-01
    • 2021-11-30
    • 1970-01-01
    • 2020-12-30
    • 2016-02-23
    相关资源
    最近更新 更多