【发布时间】:2012-10-05 11:44:15
【问题描述】:
我刚刚从 Facebook iOS SDK 3.0.X 升级到 3.1.1,并重写了一些代码...
根据注销工作流程的 Facebook 文档 (https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/#step3),我将调用 closeAndClearTokenInformation FBSession.activeSession 对象的方法。
这似乎对 Facebook 会话状态没有影响,因为在调用后立即检查它仍会返回一个打开的会话。
就目前而言,一旦我的应用程序使用 Facebook 登录,它就不会注销。
[更新 1]
根据要求,这是我用来检查会话状态的代码:
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded && FBSession.activeSession.isOpen)
//logged in
else
//not logged in
[更新 2]
稍微改变了我的逻辑...将我的原始代码更改为:
if (FBSession.activeSession.isOpen)
//logged in
else
//not logged in
因为 FBSession.activeSession.state 返回的是 FBSessionStateOpen,而不是 FBSessionStateCreatedTokenLoaded。
【问题讨论】:
-
您能否发布有关如何检查状态的代码?这种方法对我来说按预期工作。
-
按要求添加了代码...感谢您的关注。
-
在调用 closeAndClearTokenInformation 之后,我的 FBSession.activeSession.state 属性正确设置为“FBSessionStateClosed”,并且您的上述条件返回“未登录”。在调用 closeAndClearTokenInformation 后立即进行检查并查看它返回的内容。它正确到达//没有为我登录。
-
按照你的建议做了,它帮助我找到了我的逻辑缺陷。修复了它(见更新 2),它现在可以工作了。
-
参考另一个有效的答案,应该是选择的答案
标签: ios facebook authentication sdk logout