簡體   English   中英

Facebook iOS SDK注銷

[英]Facebook iOS SDK Logout

我正在使用官方和更新的Facebook iOS SDK
我們正在iPad上開發一個應用程序,該應用程序使用內部分發配置文件在實體店中使用。 客戶可以在公開的iPad上登錄他們的Facebook帳戶,以改善他們的購物體驗。

我遇到的問題是,當用戶登錄他們的Facebook帳戶時,下一個用戶(客戶)仍將使用之前用戶的憑據登錄( You have already authorized xxx, Press "Okay" to continue )。 當然這不行。

有沒有辦法實際注銷(注銷,清除憑據或什么)前一個(或當前)用戶,以便下一個用戶可以填寫自己的用戶名和密碼。

不幸的是[[FBSession activeSession] closeAndClearTokenInformation]並不是很有效。

到目前為止,這是代碼的一部分:

 // .... 
 [[FBSession activeSession] closeAndClearTokenInformation];
 [FBSession.activeSession openWithCompletionHandler:^(FBSession *session,
                                                         FBSessionState state,
                                                         NSError *error) {
      // More code ...

  }];
// ...

PS。 cookie'workaround'對我不起作用 (顯然)

從您的上下文來看,我假設您的設備沒有安裝Facebook應用程序,您也不希望使用iOS 6系統身份驗證,這會使默認登錄行為使用Safari。 如果您要清除Safari cookie,這應該有效,但為了在您的場景中獲得更流暢的體驗,您應該使用FBSession openWithBehavior:completionHandler:方法並指定FBSessionLoginBehaviorForcingWebview的行為,以便它使用內聯webview對話框進行身份驗證。

請參閱Facebook iOS SDK中的SwitchUserSample作為示例,因為該示例演示了可以在多個帳戶之間切換的應用程序。

嘗試使用此代碼。 我認為它會對你有所幫助。

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logOut];

如果您使用的是facebook sdk 4.1.0,請調用bellow方法

if ([FBSDKAccessToken currentAccessToken]) {
     [FBSDKAccessToken setCurrentAccessToken:nil];
     [FBSDKProfile setCurrentProfile:nil]; 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM