1

我想使用 facebook api 向第三方提供服务。我们可以共享访问令牌吗?如果第三方向我的服务提供用户的访问令牌,即使我的 app_id 和密码与请求它的应用程序不匹配,我是否可以访问该用户数据?

我是否应该让用户在我的网站上通过单独的 oauth 流程,即使他们已经为其他第三方完成了它?

谢谢。

-ken

4

3 回答 3

10

即使该用户访问令牌仅为一个应用程序颁发,也可以从任何其他应用程序轻松使用。

例子:

  1. 在此处获取“Graph API Explorer”应用程序的访问令牌https://developers.facebook.com/tools/explorer/?method=GET&path=me并提出请求 - 您将看到您的数据。
  2. 复制访问令牌并打开其他机器|浏览器并转到 https://graph.facebook.com/me?access_token=[access_token] - 您仍然可以检索有关您的 Facebook 用户的信息!

这里https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/它提到

我们的数据政策明确禁止与任何其他应用共享您的应用的访问令牌。但是,我们确实允许开发人员在同一应用程序的本机实现和服务器实现之间共享令牌(即使用相同的应用程序 ID),只要使用 HTTPS 进行传输即可。

于 2013-04-16T11:07:54.033 回答
4

关于:

我们可以共享访问令牌吗?

和,

即使我的 app_id 和密码与请求它的应用程序不匹配,我是否可以访问该用户数据?

答案是No。从规范OAuth2 第 10.3 节

访问令牌凭证(以及任何机密访问令牌属性)必须在传输和存储过程中保持机密,并且仅在授权服务器、访问令牌对其有效的资源服务器以及向其颁发访问令牌的客户端之间共享.


我是否应该让用户在我的网站上通过单独的 oauth 流程,即使他们已经为其他第三方完成了它?

答案是Yes。如果您使用 facebook 作为授权服务器,并且您再次重新启动 oauth 流程,您的用户只需要批准您的其他应用程序(第三方)。

于 2012-04-16T16:01:16.427 回答
3

每个访问令牌仅针对一个应用程序发布 - 它不能与不同的应用程序 ID 一起使用。

于 2012-04-14T19:30:04.803 回答