Facebook 令牌/会话策略

Posted

技术标签:

【中文标题】Facebook 令牌/会话策略【英文标题】:Facebook Token/Session Strategy 【发布时间】:2016-03-01 03:14:28 【问题描述】:

我正在使用最新版本的 Facebook SDK,与我使用的上一个版本相比,情况发生了一些变化。

过去我会使用 FBSession 类来观察用户是否使用尚未过期的有效令牌打开应用程序。

方便的旧方法:

openActiveSessionWithAllowLoginUI

将检测会话是否仍然有效,如果不是,则提示用户再次登录。

FBSession 类已被弃用,我在新的 sdk 中找不到任何等效方法。

有一些方法可以手动做我想做的事,但我想联系一下,看看是否有新的策略来处理这种情况:

– see if there is a token:
    • if yes, refresh it longer
    • if no, login again

【问题讨论】:

【参考方案1】:

假设您的意思是带有“新版本”FBSDKLoginManager/FBSDKAccessToken 的 Facebook SDK v4.x 就是您要检查现有会话并再次登录的内容。

来自SDK Upgrade Guide:

LoginManager logIn:方法总是打开一个 UI。没有直接的 相当于 v3.x 的 FBSession 的 allowLoginUI: 标志。相反,你 应在 viewDidLoad 或检查 [FBSDKAccessToken currentAccessToken] 相似的。如果当前令牌可用,请执行登录后工作。你 也可以使用 currentAccessToken 来检索缓存的令牌。

【讨论】:

谢谢,这正是我正在做的。我没有看到 Facebook 的官方声明。

以上是关于Facebook 令牌/会话策略的主要内容,如果未能解决你的问题,请参考以下文章

提供的 Facebook 会话令牌已过期或无效

使用 Facebook v4 登录 ParseUI 时没有访问令牌(会话)

如何使用 Facebook PHP SDK 3.0 正确处理会话和访问令牌?

Facebook iOS 上传视频“无法从访问令牌中检索会话密钥。”

使用 Facebook 的访问令牌在 UIWebView 中显示带有经过身份验证的用户会话的粉丝页面

使用旧的 rest api 的 Facebook 会话密钥