在iOS 6上断开Facebook与应用的连接?

时间:2012-12-05 10:10:15

标签: ios facebook ios6 facebook-ios-sdk

我正在使用最新的Facebook iOS SDK 3.1.1。我想让用户选择“断开”我们的应用程序与Facebook。我在打电话:

[[FBSession activeSession] closeAndClearTokenInformation];

这似乎工作正常,但下次我打电话

[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler];

它会立即给我一个令牌,而不会要求用户再次登录。我希望它再次要求用户进行身份验证。如果设备上没有设置Facebook帐户,它可以正常工作,因为它会打开Web浏览器,告诉用户他们已经对应用程序进行了身份验证并显示“正常”按钮。但是如果设置它,它只是默默地再次获取令牌,因此用户“断开”应用程序没有任何效果。

是否有其他人遇到此问题,您是如何处理的?

2 个答案:

答案 0 :(得分:2)

它没有再问,因为iOS SDK为Facebook SDK提供了有效的访问令牌。这就是Apple如何设计他们的Facebook(和Twitter)框架。你无能为力。我个人认为这很棒。用户只需在他们接受应用程序后告诉他们的电话。

另请注意,缓存的令牌可能已过期。 Facebook SDK目前还没有完全处理iOS SDK为其提供过期令牌的情况。

如果您想测试,则可以删除设备上的Facebook帐户并重新添加。这应该清除缓存的令牌。

答案 1 :(得分:0)

使用:

- (void)openWithBehavior:(FBSessionLoginBehavior)behavior completionHandler:(FBSessionStateHandler)handler;

使用 FBSession LoginBehavior强制WebView ,因为该行为解决了我的问题。它会打开登录模式框并忘记用户cookie。