gpt4 book ai didi

API设计: HTTP Basic Authentication vs API Token

转载 作者:行者123 更新时间:2023-12-03 06:00:20 25 4
gpt4 key购买 nike

我目前正在为 Web 应用程序的公共(public) Web API 创建一个身份验证系统。鉴于每个用户帐户都有一个 API key ,并且每个请求都必须经过身份验证,我有两种选择:

  1. 使用 HTTP 基本身份验证,like GitHub does .

    请求必须发送到 URL

    http://api.example.com/resource/id
    with basic authentication
    username: token
    password: the api key
  2. 将 API token 作为查询字符串参数传递。

    请求必须发送到 URL

    http://api.example.com/resource/id?token=api_key

还有第三个选项,即在 URI 中传递 token ,但老实说我不喜欢这个解决方案。

您会采用哪种解决方案?为什么?

最佳答案

最好的办法可能是在 header 中使用 API key (例如“授权: token MY_API_KEY”)而不是作为 URL 参数:

相对于 HTTP 基本身份验证的优势:

  • 更方便,因为您可以轻松地使 token 过期或重新生成 token ,而不会影响用户的帐户密码。
  • 如果受到威胁,漏洞仅限于 API,而不是用户的主帐户
  • 每个帐户可以拥有多个 key (例如,用户可以并排拥有“测试”和“生产” key 。)

相对于 URL 中的 API key 的优点:

  • 防止用户无意中共享嵌入了凭据的网址,从而提供额外的安全措施。 (此外,URL 可能会出现在服务器日志等内容中)

关于API设计: HTTP Basic Authentication vs API Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968009/

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