2014-03-29 100 views
1

我看過很多問題/答案,但沒有任何解決方案正在工作。Facebook註銷正在工作,但不完全註銷

我的問題是,當我們從Facebook註銷並嘗試登錄時,它不會詢問用戶名和密碼,只是使用上一個用戶帳戶登錄。有什麼辦法可以完全註銷。我也試過下面的代碼,但沒有成功。

NSHTTPCookie *cookie; 
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    for (cookie in [storage cookies]) 
    { 
     NSString* domainName = [cookie domain]; 
     NSRange domainRange = [domainName rangeOfString:@"facebook"]; 
     if(domainRange.length > 0) 
     { 
      [storage deleteCookie:cookie]; 
     } 
    } 

我也曾嘗試:

-[FBSession closeAndClearTokenInformation] 

但同樣的結果。請幫助我們!

+0

你檢查過(domainRange.length> 0)嗎?你的情況是否屬實?我也建議用[[NSURLCache sharedURLCache] removeAllCachedResponses]清理NSURLCache; – Krivoblotsky

+0

謝謝。我已經檢查過它,它也不起作用。沒有解決方案在stackoverflow? – user3106644

回答

0

在註銷方法試試這個代碼:

[FBSession.activeSession closeAndClearTokenInformation]; 
[FBSession.activeSession close]; 
+0

我已經試過了,但根本沒有工作。 – user3106644

+0

試一試這個鏈接:http://stackoverflow.com/questions/6226950/facebook-ios-sdk-logout-question – SilentStalker

0

出現這種情況的原因並不是因爲用戶的會話,或令牌保存在應用程序,但因爲權限允許用戶已保存在他們的臉書賬號。應用程序權限的存儲發生在用戶第一次成功使用Facebook登錄到應用程序時。 Facebook做到這一點,以便用戶不必重複提供以前授予權限的以前使用過的應用程序。要從Facebook帳戶中清除這些信息,並讓應用程序再次請求它的必要權限,您必須登錄到用戶的Facebook並導航到設置 - >應用程序(您使用的應用程序) - > YourAppTitle。一旦在YourAppTitle,從您的保存的應用程序中刪除它。現在嘗試在您的應用程序中使用Facebook登錄,並且應用程序應該詢問其必要的權限。

+0

所以,從技術上說,它是不可能完全從Facebook註銷。如果有人想改變他們的FB賬戶,那麼他需要執行上述所有步驟。 – user3106644

+0

實際上,當您觸摸註銷按鈕時,您正在實際註銷。看起來您登錄後沒有完全註銷,因爲應用程序需要重新登錄的權限已保存到您的Facebook帳戶。 Facebook這樣做是爲了讓返回的用戶(以前使用Facebook登錄過的用戶)可以使用facebook按鈕進行快速登錄。 – davetw12

+0

想想這樣,在桌面網頁瀏覽器中,有沒有注意到當您訪問您之前登錄過的網站時,有時會保存您的用戶名和密碼?通過保存這些數據,您只需點擊登錄按鈕即可快速登錄。 Facebook存儲憑證(在應用程序的情況下是權限)的方式是返回用戶通過Facebook快速登錄所述應用程序所必需的,這基本上是另一個版本。 – davetw12