OGeek|极客世界-中国程序员成长平台

标题: ios - facebook 万岁 token 更新 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 00:04
标题: ios - facebook 万岁 token 更新

我正在使用 Facebook iOS SDK 3.1。

来自 FB docs

Apps created from our Mobile SDKs (Android and iOS), from Desktop Apps and the server-side Login flow automatically get long-lived User Access Tokens. This long-lived token refreshes and extends each time the user triggers the auth flow.

token 的有效期为 60 天。

我有当前的实现:

- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{

  if (![FBSession activeSession].isOpen) {
    if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) {
      [[FBSession activeSession] openWithCompletionHandler:^(FBSession *session,
                                                               FBSessionState status,
                                                               NSError *error) {}];
    }
   }
}

,但这只会在应用程序第一次启动或被杀死后触发。

这里有几个问题:

  1. 当应用程序正在使用但 60 天内没有进行任何 FB 调用时,扩展 token 的正确步骤应该是什么。

  2. 假设应用程序正在运行或进入后台模式并且用户没有使用任何FB功能,例如分享/注销/登录, token 是否会自动更新?

  3. 通过 SDK 访问 FB 调用时,token 会自动更新并在 FBSession 中可用吗?



Best Answer-推荐答案


澄清一下,在使用 Facebook SDK 3.1 时,访问 token 会在后台、进行 API 调用时或在身份验证流程期间刷新。自上次刷新时间起大约一天后会进行刷新。

  1. 如果在这段时间内没有进行任何 FB 调用,并且 token 过期,您应该重新授权用户。这可能意味着它们是通过重新验证流程进行的。因此,当他们进行与 FB 相关的调用并且由于 token 过期而失败时,您应该重新验证(另请参阅 https://developers.facebook.com/docs/reference/api/errors/ )。无论如何,您都应该将其构建到您的应用中,因为 token 过期或失效的方式可能不同。
  2. 不,它会在 API 调用时刷新(参见对 1 的回答)。
  3. 是的,在最后一次刷新后的一段时间后。

关于ios - facebook 万岁 token 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13993696/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4