OAuth(访问令牌)与API密钥

OAuth(访问令牌)与API密钥,api,oauth,Api,Oauth,我遇到了很多文章,很多文章建议使用OAuth over API密钥。据我所知,在OAuth中,我们最终获得了访问令牌,它的有效期为很多天。例如,QuickBooks online OAuth令牌的有效期为6个月 所以,访问令牌相当于API密钥。无论谁得到它,都应该像API密钥一样安全。OAuth调用应该通过HTTPS进行,类似于基于API密钥的调用 与OAuth相比的另一个优势是授权。但是我们可以对API密钥模型做同样的事情。例如,我们可以在数据库中定义如下规则:API键可以访问这些API键 现

我遇到了很多文章,很多文章建议使用OAuth over API密钥。据我所知,在OAuth中,我们最终获得了访问令牌,它的有效期为很多天。例如,QuickBooks online OAuth令牌的有效期为6个月

所以,访问令牌相当于API密钥。无论谁得到它,都应该像API密钥一样安全。OAuth调用应该通过HTTPS进行,类似于基于API密钥的调用

与OAuth相比的另一个优势是授权。但是我们可以对API密钥模型做同样的事情。例如,我们可以在数据库中定义如下规则:API键可以访问这些API键

现在,OAuth的真正优势是什么?如果我们实现OAuth,我们必须要求所有客户机在其服务器中安装OAuth支持库。这对他们和我们来说都是一项复杂的任务。而在API密钥模型中,它是一个简单的web调用,没有其他库和复杂性

我的目的只是更好地理解OAuth,而不是与API密钥模型进行比较和争论

注意:
我不是说谷歌和LinkedIn那种用户必须查看和授予权限的模式。我只是在说我们为自己的客户提供的API


提前感谢您的帮助。

只有当您希望使服务用户能够允许第三方客户端应用程序访问他/她的托管在您服务中的数据,而不向应用程序透露他的/她的凭据(ID和密码)时,才需要OAuth


一对API密钥和API密钥所能做的只是对客户端应用程序进行身份验证。如果允许已验证的客户端应用程序在未经用户明确同意的情况下访问用户的数据,您不必使用OAuth。

API密钥用于项目/服务,而令牌用于验证用户。我得到了一个很好的解释。

我想已经有人问过这个问题了是的。所有这些答案的描述都在我的问题中。那为什么仍然是OAuth呢?这真的只对Google-LinkedIn这种方法有用吗?而且它在小客户群中没有任何真正的好处?在没有API密钥和机密的情况下使用OAuth怎么样?OAuth凭据是否与客户端ID(api密钥)有某种关联?api secret是什么意思?当您可以只使用secret令牌开始时,使用key和secret有什么意义。钥匙告诉你是谁,秘密告诉你是不是真的。但是如果你有一个秘密的独一无二的标记,它不会同时起到两个作用吗?