Oauth 2.0 跨应用共享Facebook访问令牌

Oauth 2.0 跨应用共享Facebook访问令牌,oauth-2.0,facebook-oauth,facebook-access-token,Oauth 2.0,Facebook Oauth,Facebook Access Token,我想使用facebook api向第三方提供服务。我们是否可以共享访问令牌?如果第三方为我的服务提供了一个用户访问令牌,即使我的app_id&secret与请求它的app不匹配,我也可以访问该用户的数据吗 我是否应该让用户在我的站点上通过一个单独的oauth流,即使他们已经为另一个第三方完成了它 谢谢 -ken每个访问令牌仅为一个应用程序颁发-不能与不同的应用程序ID一起使用。每个访问令牌仅为一个应用程序颁发-不能与不同的应用程序ID一起使用。关于: 我们是否可以共享访问令牌 以及 即使我的ap

我想使用facebook api向第三方提供服务。我们是否可以共享访问令牌?如果第三方为我的服务提供了一个用户访问令牌,即使我的app_id&secret与请求它的app不匹配,我也可以访问该用户的数据吗

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

谢谢


-ken

每个访问令牌仅为一个应用程序颁发-不能与不同的应用程序ID一起使用。

每个访问令牌仅为一个应用程序颁发-不能与不同的应用程序ID一起使用。

关于:

我们是否可以共享访问令牌

以及

即使我的app_id&secret与请求它的app不匹配,我也可以访问该用户数据吗

答案是否定的。根据规范:

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

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

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

关于:

我们是否可以共享访问令牌

以及

即使我的app_id&secret与请求它的app不匹配,我也可以访问该用户数据吗

答案是否定的。根据规范:

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

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


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

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

例如:

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

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


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

例如:

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

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


如果你有一个应用程序和一个网站一起工作,比如说Twitter和Twitter应用程序。例如,如果Twitter想使用OAuth2与第三方Google进行身份验证,您是否需要分别对应用程序和网站进行身份验证?看起来非常笨拙,对用户来说是一种糟糕的体验。我会将规范中的引用解释为是的,这是可能的,但不,你不能这样做,因为这会违反安全性。如果不能共享代币,你就不需要保证它们的安全。如果你有一个应用程序和一个网站可以一起工作,比如说Twitter和Twitter应用程序。例如,如果Twitter想使用OAuth2与第三方Google进行身份验证,您是否需要分别对应用程序和网站进行身份验证?看起来非常笨拙,对用户来说是一种糟糕的体验。我会将规范中的引用解释为是的,这是可能的,但不,你不能这样做,因为这会违反安全性。如果不可能共享代币,你就不需要保证它们的安全。FB数据政策的这段摘录明确了这一点——显然你需要
d能够在您的本机应用程序和后端应用程序之间共享令牌,您可以这样做,因为这两个应用程序还共享对FB oauth API的独占认证访问。当然,OP并不是真的要求这样做。@kingdango,两个应用程序不需要共享对FB oauth API的独占认证访问。您可以从FB Graph API Explorer应用程序中检索访问令牌,并在您自己的应用程序中使用它。FB数据策略的摘录将其固定下来-显然,您需要能够在您的本机应用程序和后端应用程序之间共享令牌,您可以这样做,因为这两个应用程序还共享对FB oauth API的独占认证访问。当然,OP并不是真的要求这样做。@kingdango,两个应用程序不需要共享对FB oauth API的独占认证访问。您可以从FB Graph API Explorer应用程序中检索访问令牌,并在自己的应用程序中使用它。