2017-06-29 44 views
0

我知道,Oauth用于授权第三方应用程序访问用户的数据(如他的Facebook帐户上的照片),而无需向第三方应用程序显示他的Facebook凭证。例如,当您尝试使用在线照片编辑工具并且想要从Facebook加载照片时,Facebook会弹出一条消息,询问您是否真的想让应用程序访问您的数据。所以在这一点上,Facebook只是返回一个临时访问令牌,应用程序可以使用它来访问您的Facebook照片。 (据我了解这个访问令牌的范围是这样的,它只有权限访问特定用户的照片)是的,这种设置是必需的,因为你不能相信第三方应用程序那么多,您的凭据。何时使用Oauth和API密钥认证类型

假设以某种方式代替oauth,facebook使用了api密钥认证。这意味着所有已经订阅facebook API的第三方应用程序已经拥有了一个可用于访问Facebook数据源的密钥。因此,该应用程序可以直接将您带到您的Facebook照片,Facebook不会通知您外人是试图访问您的私人数据。这种方法不适合暴露用户敏感数据的api,但对于暴露不是特定用户特定(如Google地图)数据的apis,api关键方法应该足够了,对吗?

所以我的问题是,什么样的标准来决定应该使用哪种认证类型?如果我的理解错误,请感谢您的反馈。

回答

0

这里是标准的4个Oauth2流量中的2个,它可以满足您提到的场景。

  • 授权码
  • 客户端凭证。

使用自己的Facebook上面的例子,你能想到的是这样的:

使用授权码流为贵“的Oauth”的情况下,在您的应用需要委托授权访问用户的Facebook照片。这意味着用户必须登录并授予对您的应用的访问权您的应用必须拥有由Facebook发布的API密钥(客户端ID)。

为您的“API密钥”方案使用客户端凭据流。这将会在您的应用程序需要访问例如公共Facebook页面/信息并因此不需要特定用户同意并且可以仅使用其API密钥(客户端ID &客户端密钥)