跨应用程序共享Facebook访问令牌

时间:2012-04-14 18:39:07

标签: oauth-2.0 facebook-oauth facebook-access-token

我想使用facebook api向第三方提供服务。我们可以共享访问令牌吗?如果第三方为我的服务提供了用户的访问令牌,即使我的app_id&秘密与要求它的应用程序不匹配?

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

感谢。

-Ken

3 个答案:

答案 0 :(得分:9)

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

示例:

  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用户的信息!
  3. 这里https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/提到了

      

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

答案 1 :(得分:3)

关于:

  

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

  

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

答案是No。来自规范OAuth2 section 10.3

  
    

访问令牌凭据(以及任何机密访问令牌属性)必须在传输和存储中保密,并且仅在授权服务器,访问令牌有效的资源服务器以及访问权限的客户端之间共享令牌已发出。

  

  

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

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

答案 2 :(得分:2)

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