我刚刚从Facebook iOS SDK 3.0.X升级到3.1.1,并重写了一些代码...
根据注销工作流程的Facebook文档(https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/#step3),我正在调用 FBSession.activeSession的 closeAndClearTokenInformation 方法对象。
这似乎对Facebook session 状态没有影响,因为在通话后立即检查它仍会返回打开的 session 。
就目前而言,一旦我的应用程序使用Facebook登录,它就不会注销。
[UPDATE 1]
根据要求,这是我用来检查 session 状态的代码:
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded && FBSession.activeSession.isOpen)
//logged in
else
//not logged in
[UPDATE 2]
改变了我的逻辑...将我的原始代码更改为:
if (FBSession.activeSession.isOpen)
//logged in
else
//not logged in
因为 FBSession.activeSession.state 返回的是 FBSessionStateOpen ,而不是 FBSessionStateCreatedTokenLoaded 。
最佳答案
也许这会有所帮助。
https://developers.facebook.com/bugs/497294866962479?browse=search_507cb8ebc4f025673237228
我将所有这些方法一起调用以确保它确实已注销。疯狂的错误。
[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];
[FBSession setActiveSession:nil];