【发布时间】:2017-06-29 05:07:27
【问题描述】:
我知道 Oauth 用于授予第三方应用程序访问用户数据(例如他的 Facebook 帐户上的照片)的权限,而无需将他的 Facebook 凭据透露给第三方应用程序。例如,当您尝试使用在线照片编辑工具并想从 facebook 加载照片时,facebook 会弹出一条消息,询问您是否真的要允许该应用程序访问您的数据。因此,此时 facebook 只返回一个临时访问令牌,应用程序可以使用它来访问您的 facebook 照片。 (据我了解,此访问令牌的范围是它仅有权访问特定用户的照片)是的,这种设置是必需的,因为您不能信任第三方应用程序以至于放弃您的凭据。
假设 facebook 以某种方式而不是 oauth 使用 api 密钥身份验证。这意味着所有订阅了 facebook API 的第三方应用程序都已经拥有一个可以用来访问 facebook 数据源的密钥。这样应用程序就可以直接将您带到您的 facebook 照片,并且 facebook 不会通知您外人是试图访问您的私人数据。这种方法不适合暴露用户敏感数据的 api,但对于暴露不那么特定于用户(如谷歌地图)数据的 api,api 密钥方法应该足够了,对吧?
所以我的问题是,决定应该使用哪种身份验证类型的标准是什么?如果我的理解有误,感谢反馈。
【问题讨论】: