5

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

[[FBSession activeSession] closeAndClearTokenInformation];

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

[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler];

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

有没有其他人有这个问题,你是如何处理的?

4

2 回答 2

2

它不再询问,因为 iOS SDK 已为 Facebook SDK 提供了有效的访问令牌。这就是 Apple 设计他们的 Facebook(和 Twitter)框架的方式。你对此无能为力。个人觉得很棒。用户应该只需要在他们接受应用程序后告诉他们的手机。

另请注意,缓存的令牌可能已过期。Facebook SDK 目前还不能完全处理 iOS SDK 给它一个过期令牌的情况。

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

于 2012-12-05T10:16:37.320 回答
0

使用:

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

使用FBSessionLoginBehaviorForcingWebView作为行为解决了我的问题。它打开登录模式框并忘记用户 cookie。

于 2013-05-18T21:05:07.373 回答