gpt4 book ai didi

ios - 如何在 iOS Facebook SDK 3.1 中模拟过期的访问 token ?

转载 作者:技术小花猫 更新时间:2023-10-29 10:52:15 27 4
gpt4 key购买 nike

我想测试 Facebook 用户的访问 token 已过期的代码路径,我需要更新 token 。我注意到访问 token 在创建后 2 个月过期。我不想等 2 个月来测试该代码路径,所以我想要一种模拟此过期的方法。如果我从不测试这种情况,我很害怕我的代码会崩溃,原因如下:

  1. 当前,在应用启动时,我调用 [FBSession openActiveSessionWithReadPermissions:permArray allowLoginUI:NO completionHandler:someFunction] 以静默方式重新连接过去已连接的 Facebook 用户。请注意 allowLoginUI 为何为 NO。是否必须是 YES 才能允许用户重新登录并更新 token ,或者可以静默更新 token ?
  2. 每次 session 状态更改时都会触发任何 openActiveSession* 调用的完成处理程序。两个值得注意的状态是 FBSessionStateOpenFBSessionStateOpenTokenExtended。当 token 扩展时,状态机是保持 token 扩展状态,还是会进入扩展状态,然后立即进入打开状态?我需要知道状态转换,所以我不会运行我的处理程序两次。
  3. [FBSession activeSession].accessToken 是否变为 nil 还是保留为旧的过期 token ?
  4. [FBSession activeSession].expirationDate 类似:它是零,旧的到期日期,还是自动成为新的到期日期?

最佳答案

要使 token 过期,最简单的方法是在您的计算机上登录 FB,转到应用中心,单击“我的应用”,然后单击应用旁边的小 X 删除您的应用。这将导致 token “过期”。一旦发生这种情况,您无法在没有用户交互的情况下自动更新 token 。您必须重新打开身份验证 UI,并且用户必须单击“允许”

关于您的问题:

  1. allowLoginUI 必须是 YES。如果 token 过期,用户必须在获取新 token 并设置它之前与 UI 进行交互到 NO 将让它静默失败。

  2. 我相信 TokenExtended 状态只会在扩展当前事件的 token 时发生。如果用户在 2 个月期限结束前使用您的应用程序,FB SDK 将自动为您定期延长 token 。不过,这与更新过期 token 不同。不过不能 100% 确定这一点,因为我还没有测试过这种状态。

  3. 如果您的 token 过期,当您下次启动应用程序时,您应该在您的 AppDelegate 方法之一 (didFinishLaunching) 中调用 openActiveSession,这将触发状态为 Closed 或 LoginFailed 的完成处理程序。此时,您应该调用 [FBSession.activeSession closeAndClearTokenInformation];根据他们的教程消除您的访问 token 。
  4. 与#3 相同

关于ios - 如何在 iOS Facebook SDK 3.1 中模拟过期的访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com