我发现了很多文章,很多人建议使用OAuth而不是API Key。根据我的理解,在OAuth中,我们终于获得了访问令牌,并且它有效期很多天。一个例子是,QuickBooks在线OAuth令牌有效期为6个月。
因此,访问令牌等同于API Key。谁得到它,应该像API密钥一样安全。 OAuth调用应该通过HTTPS进行,类似于基于API密钥的调用。
与OAuth相比的另一个优势是授权。但我们可以使用API Key模型做同样的事情。例如,我们可以在数据库中定义规则,例如 API密钥可以访问这些 API 。
现在,OAuth的真正优势是什么?如果我们实施OAuth,我们必须要求所有客户在其服务器中安装OAuth支持库。对他们而且对我们来说,这是一项复杂的任务。而在API Key模型中,它是一个简单的Web调用,没有其他额外的库和复杂性。
我的目的只是为了更好地理解OAuth而不是比较&与API Key模型争论。
注意:的
我不是在谈论Google& LinkedIn类型的用户必须查看和授予权限的模型。我只是谈论我们为自己的客户提供的API。
提前感谢您的帮助。
答案 0 :(得分:20)
只有当您希望允许服务的用户允许第三方客户端应用程序访问您的服务中托管的数据而不向应用程序透露其凭据(ID和密码)时,才需要OAuth
一对API密钥& API秘密可以做的只是客户端应用程序的身份验证。如果您可以允许经过身份验证的客户端应用程序在未经用户明确同意的情况下访问用户的数据,那么您不需要必须使用OAuth。
答案 1 :(得分:2)
API 密钥用于项目/服务,而令牌用于验证用户。遇到了一个很好的解释。 when and why to use API key