【发布时间】:2012-12-02 20:34:08
【问题描述】:
我们正在为我的工作确定 API 标准。
我见过一些 API 使用 API 密钥。我见过其他人使用用户名和密码的完全身份验证(例如 oAuth2)。
一般来说,是否有使用其中一个的好时机?
【问题讨论】:
-
oauth 永远不会看到用户名或密码,消费者只是向服务提供者发送和接收各种令牌,直到它通过身份验证。
我们正在为我的工作确定 API 标准。
我见过一些 API 使用 API 密钥。我见过其他人使用用户名和密码的完全身份验证(例如 oAuth2)。
一般来说,是否有使用其中一个的好时机?
【问题讨论】:
OAuth 非常适合“三方身份验证”场景(第一方:您的 API 服务器,第二方:使用您的 API 的应用,第三方:代表其使用 API 的用户)。例如,假设 Instagram 应用程序(第二方)代表用户 John Doe(第三方)将照片上传到 Facebook API(第一方)以显示在他的 Facebook 墙上。
但是,许多 API 没有这种 3 方场景 - 只有一个 API 和一个应用程序,与任何最终用户特定信息无关。例如,如果一家经纪公司提供股票报价 API,这是一个两方方案,因为股票报价并非特定于最终用户。 (但是,如果有一个 API 可以访问某人的股票投资组合,那就是 3 方场景)。
对于 3 方场景,此时 OAuth 几乎已成为标准。对于 2 方场景,即使可以使用 OAuth,但实际上通常会使用更简单的身份验证方案(例如,在 URL 中仅使用 API 密钥,并使用 HTTPS 对中介隐藏 URL)。
【讨论】: