ACs*_*ACs 4 authentication api
请有人解释我如何使用api密钥以及它有什么用处.
我已经搜索了很多关于这一点,我得到了不同的和相互矛盾的答案.有人说API密钥是保密的,它永远不会作为通信的一部分发送,而其他人则在没有任何加密的情况下将其发送给客户端.客户的签名是什么?他如何生成它以及可以用它做什么服务器?为什么要使用api密钥进行修改而不是使用旧的用户名密码对呢?有人可以详细解释一下客户端(Android设备)和服务器(php api)之间的通信情况.
我很感激任何好的教程,代码示例和初学者的解释.
API身份验证的主题很复杂.下面我将尽力解释问题的一部分:为什么API密钥比用户名/密码更好?
开始了.
在构建(或使用API)时,开发人员常问的问题是"为什么此服务需要API密钥而不是我的用户名和密码?" 这是一个很好的问题!
首先,我们来谈谈API密钥通常是什么.
API密钥通常是随机生成的字母和数字字符串.此外,API密钥通常分为两部分:ID和秘密.例如,如果您使用的是Stormpath等Web服务,则可能有两个API键如下所示:
您可以将API密钥ID视为用户名.这是一个全球唯一标识符,允许API服务查找您的帐户.
您可以将API密钥秘密视为密码.这是一个密码,当与正确的API密钥ID匹配时,将授予您访问相关API服务的权限.
您不希望使用用户名和密码对API进行身份验证的主要原因是:
即使API是通过SSL提供的,也有许多可用的漏洞可能会损害您的凭据.如果您使用用户名/密码登录API服务,并且攻击者获取这些凭据,则他们可以访问您的帐户.
如果您使用用户名/密码对API进行身份验证,那么如果您的某个服务器/ API客户端遭到入侵,会发生什么?这意味着您需要重置用户名/密码并为使用它的所有客户端更新它.这可能是耗时且昂贵的.
通过使用用户名/密码,您通常会限制自己使用某种类型的API.通过使用API密钥对,您可以将API凭据分离到不同的访问级别(可能在密钥对上只能访问某些数据,而另一个可以访问其他类型的数据).
API密钥对通常是一个更好的主意.除了明显的安全优势外,它们还可用于其他目的:
如果API密钥对被泄露,您通常可以创建/循环API密钥对,而无需更新您拥有的每个客户端.
您可以使用API密钥对为您的API提供子帐户功能.
希望有所帮助!