2016-11-29 317 views
1

大家好,我無法使用最新的sdk註銷FB,即使註銷後它也顯示「已經授權」。這是我註銷的代碼。FB最新sdk ios註銷問題

login = [[FBSDKLoginManager alloc] init]; 
login.loginBehavior = FBSDKLoginBehaviorBrowser; 

if ([FBSDKAccessToken currentAccessToken]) { 

    [login logOut]; 
    [FBSDKAccessToken setCurrentAccessToken:nil]; 
    [FBSDKProfile setCurrentProfile:nil]; 
    NSLog(@"Logged out of facebook"); 
    NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    NSArray* facebookCookies = [cookies cookiesForURL: 
           [NSURL URLWithString:@"http:www.facebook.com"]]; 
    for (NSHTTPCookie* cookie in facebookCookies) { 
     [cookies deleteCookie:cookie]; 
    } 
} 

請幫忙。

+0

您需要刪除permision也 –

+0

u能,通過關閉tocken本屆 FBSession的信息添加一些代碼,刪除權限 – Peter

+0

嘗試*會話= [FBSession activeSession] [session closeAndClearTokenInformation]; –

回答

0

這是因爲您可能是通過Safari登錄的。現在,當您嘗試從應用程序登錄時,它實際註銷,但在Safari中會話仍然存在。

+0

是的,但我寫了刪除cookies的代碼。 – Peter

+0

我不認爲它的'http'。它應該是'https'。此外,如果數組數返回0,你檢查了'facebookCookies'數組嗎? – Poles

+0

感謝您的評論。我已經用https替換http仍然得到同樣的問題,即使facebookCookies數組數爲0,什麼是適當的解決方案,請幫助。 – Peter

0

我認爲登錄/註銷(基於訪問令牌)並授權您的iOS應用程序使用您的FB賬戶是兩回事。而這個鏈接確認,請https://stackoverflow.com/a/33780346/3719248

編輯:

你要做到這一點,當你運行該[login logOut];您的用戶也被從Safari瀏覽器註銷。如果這是正確的,我認爲這不可能實現。 FBSDK使用SFSafariViewController,請檢查此link

作爲開發人員,您無權訪問SFSafariViewController的Cookie,原因是reasons

目前爲UIWebViewWKWebView獲得的cookies如果實施和使用。我認爲這是不是你的情況下

+0

那麼解決方案是什麼? – Peter

+0

@Peter請檢查已編輯的答案 – ibnetariq

+0

如何清除Cookie SFSafariViewController – Peter