gpt4 book ai didi

api - REST API 和 API key

转载 作者:行者123 更新时间:2023-12-04 23:01:32 33 4
gpt4 key购买 nike

请有人向我解释如何使用 api key 以及它有什么用处。

我对此进行了很多搜索,但得到了不同且相互矛盾的答案。有人说 API key 是保密的,它从不作为通信的一部分发送,而其他人则将它发送给客户端而不进行任何加密。客户的签名是什么?他如何生成它以及服务器可以用它做什么?为什么要使用 api key 而不是使用旧的用户名密码对?有人可以详细解释一下客户端(Android 设备)和服务器(php api)之间的通信方式。

我很感激初学者的任何好的教程、代码示例和解释。

最佳答案

API 认证是一个复杂的话题。下面我将尽力解释问题的一部分:为什么 API key 比用户名/密码更好?

开始了。

在构建(或使用 API)时,开发人员的一个常见问题是“为什么此服务需要 API key 而不是我的用户名和密码?”这是一个很好的问题!

首先,让我们谈谈通常的 API key 是什么。

API key 通常是随机生成的字母和数字字符串。此外,API key 通常由两部分组成:ID 和 secret 。例如,如果您使用的是 Stormpath 之类的 Web 服务,您可能有两个如下所示的 API key :

  • API_KEY_ID=kzjbOg3iOm4k4MRpBss76yxlZSPJtoOPaqxirsfX
  • API_KEY_SECRET=A8FnQWM7RpgGjU3sZjOUgMIq5t8mvAhQES9iE30S

  • 您可以将 API key ID 视为用户名。这是一个全局唯一标识符,它允许 API 服务找到您的帐户。

    您可以将 API key secret 视为密码。这是一个密码,当与正确的 API key ID 匹配时,将授予您访问相关 API 服务的权限。

    您不想使用用户名和密码对 API 进行身份验证的主要原因是:
  • 即使 API 是通过 SSL 提供的,也有许多漏洞可以破坏您的凭据。如果您使用您的用户名/密码登录 API 服务,并且攻击者获取了这些凭据,他们就可以访问您的整个帐户。
  • 如果您使用您的用户名/密码对 API 进行身份验证,如果您的服务器/API 客户端之一遭到入侵,会发生什么情况?这意味着您需要重置您的用户名/密码并为所有使用它的客户端更新它。这可能是耗时且昂贵的。
  • 通过使用用户名/密码,您通常会限制自己使用某种类型的 API。通过拥有 API key 对,您可以将 API 凭证分离到不同的访问级别(也许 key 对只能访问某些数据,而另一个可以访问其他类型的数据)。

  • 一般来说,API key 对是一个更好的主意。除了明显的安全优势外,它们还有其他用途:
  • 如果 API key 对泄露,您通常可以创建/循环 API key 对,而无需更新您拥有的每个客户端。
  • 您可以使用 API key 对为您的 API 提供子账户功能。

  • 希望有帮助!

    关于api - REST API 和 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532603/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com