无效的 API 密钥作为使用 REST 服务器 codeigniter 的 PUT 方法的响应

Invalid API key as a reponse of PUT method using RESTServer codeigniter

我正在使用 codeigniter rest 服务器 api 库。

当我使用 PUT 方法在 Postman 中输入 http://localhost/RESTapi/api/question?X-API-KEY=XXX 时 我越来越: { "status":错误, "error": "Invalid API key " }

使用 GET 方法工作正常 我该如何解决这个问题?

我见过一些 API 在您发出 POST 或 PUT 凭据请求时不查看 GET 参数,或者它们的处理方式不一致。

实际上,凭据应该通过授权 header 或自定义凭据进入 headers,原因有很多,例如 'not logging credentials to access logs',但我离题了。

这种情况你可以试试:

  • X-API-KEY=XXX 放入 PUT 的 body 中(无双关语),看看是否有效
  • 参见 if/how 库接受 header
  • 中的 API 键

特别关注这个库 (https://github.com/chriskacerguis/codeigniter-restserver),它们确实支持 header X-API-KEY。这应该是您为所有请求放置密钥的地方——最好不要将它们作为 url 参数传递。

这是使用他们 Github 项目中的 curl 的命令行示例。

 curl -X POST -H "X-API-KEY: some_key_here" http://example.com/books

在 PHP 中你可以使用 curl 来设置 header 像这样:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-API-KEY: XXX'));