• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - facebook 万岁 token 更新

[复制链接]
菜鸟教程小白 发表于 2022-12-13 00:04:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap