2012-02-24 9 views
0

私は現在アンドロイドFB sdkを使ってアンドロイドアプリを開発しています。つまり、認証/承認(SSO)からAPI呼び出しまでのすべてがアンドロイドFB sdkによって行われます。AndroidのFacebookアプリ:FB webview(ログインwebview)のCookieの有効期限はありますか?

セキュリティ上の理由から、access_tokenを電話に保存したくありません。今、私はクッキーについて少し問題があります。Facebook webview(最初にログインしたとき)。アンドロイドアプリを終了した後、またはプロセスを終了した後、私はデバイスにaccess_tokenを保存していなくても、資格情報を提供せずにアンドロイドアプリにアクセスできるように思われるので、おそらくクッキーです。

FacebookのCookieが有効な時間はどれくらいか分かりますか

おかげで...

答えて

0

あなたは、あなたがそれで行われたときに、手動でクッキーを削除することがあります。すべてのクッキーの種類の核兵器ことなので、あなたはクッキーが削除されますれている、より具体的な制御をしたい場合はドキュメントをチェックすること

CookieManager.getInstance().removeAllCookies(); 

。ここで

http://developer.android.com/reference/android/webkit/CookieManager.html

0

のFacebook自身でクッキーをクリアするの実装です。

public static void clearFacebookCookies(Context context) { 
     // setCookie acts differently when trying to expire cookies between builds of Android that are using 
     // Chromium HTTP stack and those that are not. Using both of these domains to ensure it works on both. 
     clearCookiesForDomain(context, "facebook.com"); 
     clearCookiesForDomain(context, ".facebook.com"); 
     clearCookiesForDomain(context, "https://facebook.com"); 
     clearCookiesForDomain(context, "https://.facebook.com"); 
    } 



private static void clearCookiesForDomain(Context context, String domain) { 
     // This is to work around a bug where CookieManager may fail to instantiate if CookieSyncManager 
     // has never been created. 
     CookieSyncManager syncManager = CookieSyncManager.createInstance(context); 
     syncManager.sync(); 

     CookieManager cookieManager = CookieManager.getInstance(); 

     String cookies = cookieManager.getCookie(domain); 
     if (cookies == null) { 
      return; 
     } 

     String[] splitCookies = cookies.split(";"); 
     for (String cookie : splitCookies) { 
      String[] cookieParts = cookie.split("="); 
      if (cookieParts.length > 0) { 
       String newCookie = cookieParts[0].trim() + "=;expires=Sat, 1 Jan 2000 00:00:01 UTC;"; 
       cookieManager.setCookie(domain, newCookie); 
      } 
     } 
     cookieManager.removeExpiredCookie(); 
    } 

Facebook SDKがプロジェクトにlibとして接続されている場合は、 Session.getActiveSession()を呼び出します。clearFacebookCookies(getApplicationContext());

関連する問題