2

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

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

它适用于 GET 方法我该如何解决这个问题?

4

1 回答 1

2

如果您对凭据发出 POST 或 PUT 请求,或者它们的执行方式不一致,我已经看到一些 API 不查看 GET 参数。

确实,凭据应该通过 Authorize 标头或自定义标头进入标头,原因有很多,例如“不记录凭据以访问日志”,但我离题了。

在这种情况下,您可以尝试:

  • 将(无双关语)X-API-KEY=XXX放在 just 的内部PUT,看看这是否有效
  • 查看库是否/如何在标头中接受 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 设置标题,如下所示:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-API-KEY: XXX'));
于 2016-03-08T19:17:00.913 回答