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 应用程序,您也不希望使用 iOS 6 系统身份验证,这将保留默认登录行为以使用 Safari。如果您要清除 Safari cookie,那应该可以,但为了在您的场景中获得更流畅的体验,您应该使用该FBSession openWithBehavior:completionHandler:方法并指定一个行为,FBSessionLoginBehaviorForcingWebview以便它使用内联 webview 对话框进行身份验证。

有关示例,请参阅 Facebook iOS SDK 中的 SwitchUserSample,因为该示例演示了一个可以在多个帐户之间切换的应用程序。

于 2012-11-20T21:48:34.760 回答
0

试试这个代码。我想它会对你有所帮助。

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

如果您使用的是 facebook sdk 4.1.0,只需调用以下方法

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