我正在使用服务器端身份验证编写一个 Web 应用程序,并且我一直试图找出一种在我的应用程序中利用 Facebook 的 Javascript SDK 的方法。
FB.init 的文档将可选的 authResponse 参数定义为用于“手动设置可从 getAuthResponse 检索的对象”。它还指出,一旦获得,应用程序可以存储整个 authResponse 对象以供将来访问。如果应用程序使用 FB.login(Javascript SDK 的身份验证),这可能会起作用,但是使用服务器端身份验证的应用程序呢?
服务器端身份验证使我的应用程序能够获取用户的访问令牌,这是图形 API 调用所需的最关键信息。我希望仅此 access_token 就足以构造一个有效的 authResponse 对象,用于进行身份验证以与 Javascript SDK 一起使用。
仅使用包含有效“accessToken”字段的 authResponse 调用 FB.init(使用有效的 appID、channelUrl 和其他参数)是不够的。包括 userId 也是不够的。理想情况下,仅这些参数就可以工作。为 authResponse 定义的唯一其他人是“expiresIn”和“signedRequest”。这些参数中的哪一个(如果有的话)足以生成有效的 authResponse 对象?它们必须分配给什么值?
我设法挖掘了“签名请求”的描述: https ://developers.facebook.com/docs/authentication/signed_request/
这份文件提出了许多问题。我假设签名是由对称算法产生的。如果没有,则无法生成它。假设有可能,有效载荷的描述绝不是具体的。有一个包含 9 个参数的列表,其中没有一个是按要求标记的。