2

建议无论您的应用程序使用代码还是令牌作为您的 response_type,您都应该对 access_token 执行自动检查,以确认令牌属于应用程序期望它属于的人,并且是您的应用程序生成了令牌。

你应该这样做

GET graph.facebook.com/debug_token?
 input_token={token-to-inspect}
 &access_token={app-token-or-admin-token}

其中 app-token 是 app_id|app_secret,token-to-inspect 是用户的 access_token。另外,我认为通过阅读文档,您可以通过使用 app_id 和 app_secret 进行客户端凭据调用来检索应用令牌。

这对于在服务器端实现的授权流程很好,但是如果您使用隐式方法并选择 response_type 作为令牌(并且出于某种原因不使用 FB 的 javascript SDK)怎么办?如何在不泄露 app_secret 的情况下安全地获取应用令牌?FB的SDK是怎么做的?

4

1 回答 1

4

您可以在此处的 Facebook 开发人员面板中生成 app_token ,然后简单地将其保存到配置文件服务器端。从开发者页面:

应用令牌不会过期,并且应该保密,因为它们与您的应用秘密相关。

在我的页面上,我使用以下流程:

  1. 用户使用 Facebook JS SDK 进行身份验证,然后将他的令牌 + uid 发送到服务器。
  2. 服务器通过调用您所说的“debug_token”方法来验证给定令牌是否与给定人员相关。
  3. 如果 token + uid 组合有效,则对用户服务器端进行身份验证。

我希望这有帮助。

于 2014-02-20T10:16:31.177 回答