所以这是我迄今为止在生成/扩展令牌方面发现的关于 Android/iOS sdks 的内容。
我找到了 2 种使用 SDK 生成令牌客户端的方法和 3 种扩展令牌的方法。
生成:
1) 脸书应用程序。生成 SSO 令牌
2) 网络浏览器(iOS)/网络对话框(Android/BB)。在 iOS 上生成 SSO 令牌,在 Android/BB 上生成非 SSO 令牌
这些代币都是长期代币。
扩展:
1) iOS/Android 应用程序。在 Android 情况下,仅当用户登录应用程序时,否则对绑定服务的调用永远不会返回任何内容,甚至不会返回错误。尚未针对该场景测试 iOS。
2) auth.extendSSOAccessToken。这是旧 API 的端点,据我所知,如果官方应用程序不存在,iOS SDK 仍然使用它。现在,如果您在不是通过 SSO(Android 弹出对话框)生成的令牌上使用此端点,您会收到错误代码 10,并带有一条消息,告诉您令牌不是通过 SSO 生成的。这可能会导致您怀疑只要您的令牌是通过 SSO 生成的,它就可以工作。您的怀疑是错误的,它会为您提供错误代码 100,并带有“未提供 Facebook 应用程序的访问令牌”的消息。据我所知,这使得这种方法在 Android 上完全没用。
3) oauth/access_token。这是 FB 告诉我们在他们的路线图中使用的端点。当然,这种方法a)通过apk反编译/解包公开您的APP_SECRET(FB强烈建议不要这样做),b)仅适用于将短期令牌扩展为长期令牌。因此,如果您从一个长期令牌开始,这是在 Android/iOS 上返回的默认值,您需要先生成一个短期令牌,然后使用此方法在客户端(不安全)或服务器端(不为了所有人)。如何从长期代币生成短期代币?希望我知道=(。
到目前为止,还没有找到任何可以在任何地方完成此任务的想法。如果有人知道,请分享!
这至少会给拥有服务器的人提供一种扩展长期令牌的安全方法。