2012-11-19 13 views
6

私は公式を使用してFacebook iOS SDKを更新しています。
当社は、社内の分布プロファイルを使用して物理的な店舗内で使用されているiPadのアプリケーションを開発しています。顧客は、ショッピング体験を向上させるために一般公開されているiPadのFacebookアカウントにログインすることができます。のFacebookのiOS SDKログアウト

私が遭遇した問題は、ユーザーが自分の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。 The cookie 'workaround' doesn't work for me

+0

を呼びますか? iOS、Facebookアプリ、またはSafari経由ですか? – ale0xB

+0

サファリを通して。 – basvk

答えて

8

あなたのコンテキストからは、あなたのデバイスにはFacebookアプリケーションがインストールされていないと想定されていません。また、Safariを使用するデフォルトのログイン動作を残すiOS 6システム認証を使用する予定はありません。 SafariのCookieをクリアする場合は、動作するはずですが、シナリオでよりスムーズな操作を行うには、FBSession openWithBehavior:completionHandler:メソッドを使用して、動作の種類をFBSessionLoginBehaviorForcingWebviewと指定して、認証にインラインWebviewダイアログを使用するようにしてください。

FacebookのiOS SDKのSwitchUserSampleについては、そのサンプルが複数のアカウントを切り替えることができるアプリケーションを示しているので、その例を参照してください。

+0

例を確認することについて考えなかった。 'FBSessionLoginBehaviorForcingWebView'の振る舞いを利用することは正しいアプローチのようです。 – basvk

0

は、このコードを試してみてください。私はそれがあなたを助けると思う。

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

これは必要ありませんFBSDKLoginManagerの新しいインスタンスを作成します。 –

0

あなたはFacebookのSDK 4.1.0を使用している場合は、単にどのようにしてユーザーを認証している怒鳴る方法

if ([FBSDKAccessToken currentAccessToken]) { 
    [FBSDKAccessToken setCurrentAccessToken:nil]; 
    [FBSDKProfile setCurrentProfile:nil]; 
} 
関連する問題