0

我正在为个人项目创建一个 RESTful API,并且我一直在阅读有关 api 身份验证的信息。很可能我只是不明白不同的东西是干什么用的。OAuth 有什么用?API 密钥有什么用?

主要问题

为什么我不能让每个请求都使用 HTTPS 并使用会话/cookie?

4

2 回答 2

1

如果用户将通过您拥有或控制的应用程序访问您的 API,那么 HTTPS 和用户身份验证/授权是可以的。

但是,如果您想允许其他开发人员创建的应用程序访问您的 API,OAuth 和 API 密钥允许您控制这些第三方应用程序如何使用您的 API。

  • API 密钥:通过为每个应用程序分配单独的 api 密钥,您可以识别发送请求的应用程序。您可以使用此信息来跟踪或限制应用程序可以使用您的 API 执行的操作。
  • OAuth:如果第 3 方应用程序需要访问用户拥有的敏感数据或代表他们执行操作,那么您要确保用户对此表示满意。您可以这样做的一种方法是要求应用程序在每个请求中传递用户凭据。但是,这通常不是一个好主意,因为您不希望用户向第三方透露他们的用户名和密码。这就是 OAuth 派上用场的地方,因为它允许用户向第三方提供有限的权限以代表他们访问您的 API。
于 2013-05-01T20:36:42.203 回答
0

如果满足以下条件,SSL 就足够了:

  • 您需要客户证书
  • 应用程序获得客户端证书
  • 应用程序根据可接受的客户端列表对其进行验证
  • 应用程序记录哪个客户端执行了事务。

没有所有这些,您只是接受来自任何人的交易,这就是 OAuth 正在解决的问题。

于 2013-05-01T23:45:53.617 回答