我正在使用最新的Facebook iOS SDK 3.1.1。我想让用户选择“断开”我们的应用程序与Facebook。我在打电话:
[[FBSession activeSession] closeAndClearTokenInformation];
这似乎工作正常,但下次我打电话
[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler];
它会立即给我一个令牌,而不会要求用户再次登录。我希望它再次要求用户进行身份验证。如果设备上没有设置Facebook帐户,它可以正常工作,因为它会打开Web浏览器,告诉用户他们已经对应用程序进行了身份验证并显示“正常”按钮。但是如果设置它,它只是默默地再次获取令牌,因此用户“断开”应用程序没有任何效果。
是否有其他人遇到此问题,您是如何处理的?
答案 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。