6

公式で更新された 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 の「回避策」が機能しない(明らかに)

4

3 に答える 3

8

あなたの文脈から、私はあなたのデバイスにFacebookアプリがインストールされておらず、Safariを使用するためのデフォルトのログイン動作を残すiOS6システム認証を使用することを期待していないと仮定しています。Safari Cookieをクリアする場合は機能するはずですが、シナリオをよりスムーズに行うには、このメソッドを使用し、認証にインラインWebビューダイアログを使用するようにFBSession openWithBehavior:completionHandler:の動作を指定する必要があります。FBSessionLoginBehaviorForcingWebview

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

于 2012-11-20T21:48:34.760 に答える
0

Facebook SDK 4.1.0 を使用している場合は、次のメソッドを呼び出すだけです

if ([FBSDKAccessToken currentAccessToken]) {
     [FBSDKAccessToken setCurrentAccessToken:nil];
     [FBSDKProfile setCurrentProfile:nil]; 
}
于 2015-05-06T11:10:34.680 に答える
0

このコードで試してください。役立つと思います。

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logOut];
于 2015-05-06T10:47:25.657 に答える