1

关于 facebook 中的 oAuth 流程,我有一些我想了解的内容。

我有一个 Facebook 应用程序。

当我直接访问我的应用程序站点(而不是通过 facebook),即在地址栏中输入我的应用程序站点 URL 时,我到达了我的应用程序。假设:https ://myApp.com/fbApp

在服务器端有 oAuth 流程(发送对“code”参数的请求,然后使用“code”参数发送对“用户访问令牌”的另一个请求)。

我想知道 Facebook 如何知道谁是请求“代码”参数的用户。我注意到,当我登录 facebook 并直接访问我的网站(如上所述)时,我得到了“用户访问令牌”。

当第一次向 facebook 请求“code”参数时,他们的其他东西是否在幕后转移?

4

1 回答 1

0

是的,当向 Facebook 发出第一个重定向请求以获取 code 参数时,用于将您转发到 Facebook 的 URI 包含一个客户端 ID(请参阅https://github.com/jcleblanc/oauth/blob/ master/oauth2-php-facebook/index.php第 7 行)。此客户端 ID 指的是站点开发人员在https://developers.facebook.com/apps为其站点创建的应用程序。

获取到 code 参数后,站点向 Facebook 发出 HTTP POST 请求,以将 code 交换为访问令牌。在此请求中,客户端 ID 和客户端密码都被传输(参见https://github.com/jcleblanc/oauth/blob/master/oauth2-php-facebook/complete.php第 10 行)。这两个密钥,客户端 ID 和客户端密钥,是直接引用创建的应用程序的密钥。

我希望这会有所帮助,乔恩

于 2012-11-29T19:43:55.530 回答