使用已撤消的共享首选项中的令牌恢复Facebook会话

时间:2013-07-19 12:52:48

标签: android facebook session

我在我的Android应用程序中集成了Facebook SDK 3.0。

让我们假设用户在Android设备中打开了一个Session。如果使用默认令牌策略,则令牌将保留在SharedPreferences中。

然后,用户撤消网络或Facebook应用程序中的令牌。

接下来,让我们假设我创建一个新的Session并将其设置为活动(这就是UiLifecycleHelper没有活动的Session。

接下来我打开会话:

Session.openActiveSession(this, true, mCallback);

根据https://developers.facebook.com/docs/reference/android/current/Session#openActiveSessionFromCache(Context)

  

创建一个新会话,如果有令牌缓存,请打开   会话并在没有任何用户交互的情况下使其处于活动状态。

因此,通过此流程,我们将使用实际已撤销的令牌打开会话...

这是真的吗?我错过了什么吗? 我怎么能这样对待?如果我尝试打开另一个新会话,将再次使用相同的无效令牌......

1 个答案:

答案 0 :(得分:0)

我意识到你可以用以下方式清除令牌:

Session#closeAndClearTokenInformation();

因此,似乎开发人员希望用Session.openActiveSession()打开Session。如果SharedPreferences中有一个缓存的令牌并且它有效,那就完美了。 如果令牌被撤销,我们将不会知道它,直到我们在调用Facebook API时收到auth错误。如果发生这种情况,请清除令牌并重新进行身份验证。