我正在开发一个通过 LinkedIn 登录的 iOS 应用程序。我正在使用 Web 视图供用户登录并从 LinkedIn 获取令牌。如果我理解正确,我收到的令牌在短期内有效,因此我需要使用现有令牌致电 LinkedIn 以获取具有延长期限的新令牌。请问我应该调用什么API来刷新令牌以获得具有延长有效期的新令牌?
根据 LinkedIn 的说法,没有直接的 API 可以调用来刷新 OAuth 2 令牌。应该发生的是如果:
将他们指向身份验证 URL 将触发其令牌的刷新,而无需用户登录。
在使用iOSLinkedInAPI库时,情况似乎并非如此。
我发现,身份验证流程并未在 iOS 模拟器或设备上从 LinkedIn 生成登录会话 cookie,因此从未满足要求 1。
您需要让用户通过常规 LinkedIn 登录页面登录,这将为您提供可以缓存的会话 cookie。发送用户对您的应用程序进行身份验证后,每次您想要调用身份验证 URL 来刷新用户的令牌时,您都可以将该缓存的 cookie 加载到
NSHTTPCookieStorage sharedHTTPCookieStorage
中。
如果您想检查一下,我创建了一个带有示例的帮助器类: iOSLinkedInTokenAuthorizer