gpt4 book ai didi

php - 将 api key 传递给 rest api

转载 作者:IT王子 更新时间:2023-10-29 01:15:46 26 4
gpt4 key购买 nike

我正在使用 phil sturgeon REST_Controller 为 codeigniter 创建一个 REST api,到目前为止,我已经能够创建一个简单的库来为用户生成 api key 。我现在的问题是为每个请求将 api key 发送到 API,我如何做到这一点而不必为每个请求手动发送它。

最佳答案

您应该查看请求签名。一个很好的例子是Amazon's S3 REST API .

概述实际上非常简单。用户有两个重要的信息可以使用您的 API,一个公共(public)用户 ID 和一个私有(private) API key 。他们将公共(public) ID 与请求一起发送,并使用私钥对请求进行签名。接收服务器查找用户的 key 并确定签名请求是否有效。流程是这样的:

  1. 用户加入您的服务并获得用户 ID(例如 123)和 API键。
  2. 用户想要向您的 API 服务发出请求以更新他们的电子邮件地址,因此他们需要向您的 API 发送请求,也许是为了/user/update?email=new@example.com.
  3. 为了能够验证请求,用户在调用中添加了用户id和签名,所以调用变成了/user/update?email=new@example.com&userid=123&sig=some_generated_string
  4. 服务器收到调用,发现它来自 userid=123,并查找该用户的 API key 。然后它复制从数据创建签名的步骤,如果签名匹配,则请求有效。

此方法可确保 API key 永远不会作为通信的一部分发送

看看 PHP 的 hash_hmac()功能,它在发送签名请求时很受欢迎。通常,您会让用户执行一些操作,例如将所有参数放入数组中,按字母顺序排序,连接成字符串,然后 hash_hmac 该字符串以获取 sig。在此示例中,您可能会这样做:

$sig = hash_hmac("sha256",$params['email'].$params['userid'],$API_KEY)

然后如上所述将 $sig 添加到 REST url 中。

关于php - 将 api key 传递给 rest api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567512/

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