Facebook - SDK什么时候刷新身份验证令牌?

时间:2015-05-08 16:02:16

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-ios-sdk facebook-android-sdk

根据Facebook文档,移动SDK会生成长期使用的令牌,当使用您的应用程序的人向Facebook服务器发出请求时,这些令牌每天刷新一次。对于javascript SDK,会生成短期令牌并定期刷新。

我很好奇"使用你的应用程序的人向Facebook服务器提出请求"。具体哪些调用会导致令牌被刷新?或者更重要的是,哪些电话赢了?是否足以检查登录状态或需要更活跃的东西?我真正感兴趣的是让令牌保持活跃(或获得一个新的令牌)而不会通过登录流程返回用户,或做任何对Facebooks API特别活跃的事情。

谢谢!

2 个答案:

答案 0 :(得分:8)

根据Facebook SDK Docu

令牌到期后("auto" extend of Facebook SDK Token

  

在任何时候,您都可以通过将此人发送回您的网络应用程序使用的登录流程来生成新的长期令牌 - 请注意,此人实际上不需要再次登录,他们已经授权您的应用,因此,他们会立即使用刷新的令牌从登录流程重定向回您的应用程序

Facebook SDK中没有keep alive功能。

  

用户访问令牌有两种形式:短期令牌和长期令牌。短命代币通常具有大约一个或两个小时的寿命,而长寿代币通常具有大约60天的寿命。你不应该依赖这些生命周期保持不变 - 生命周期可能会在没有警告的情况下改变或提前到期。请参阅处理错误。

长寿= 60天

短命= 2小时

同样根据Facebook SDK Docu

  

使用Facebook移动SDK的移动应用程序获得了长寿命令牌。

一旦你强迫用户申请新oAuth/login,他就会收到一个新令牌。旧的不会过期。您可以FB.getLoginStatus查看loginStatus。无需keep alive

答案 1 :(得分:2)

SDK会在发出实际图形请求时为您刷新访问令牌(最多每天一次)。每次更新令牌时,都会通知AccessTokenTracker,因此如果您希望收到更新通知(例如发送到服务器),您可以注册一个跟踪器。

如果您只从服务器发出图形请求,那么您需要从那里处理过期,并尝试扩展,或者提示您的用户再次进行SSO以获取更新的令牌。