【问题标题】:How can I generate an API Key in My own Controller in Codeigniter如何在 Codeigniter 的我自己的控制器中生成 API 密钥
【发布时间】:2012-07-24 06:24:16
【问题描述】:

只想提一下,我真的是 API 开发(概念、结构、最佳实践)方面的新手,我对它几乎不熟悉,所以如果你发现它是,请原谅我可怜的愚蠢问题,我' m 使用 Phil Sturgeon 的 REST API 服务器、Curl 库和 REST API 客户端,这是我的代码:

在我的控制器应用程序/控制器/make_key 中

function index(){
      $this->load->library('rest');
      $this->load->library('curl');
      $this->rest->put('https://www.myapplication.com/apifolder/key/X-API-KEY/FOO');
    }

- 完全没有反应

其中 apifolder/key 是我的 key.php 的位置(来自 Phil Sturgeon 的默认示例):

请注意,我也通过地址栏尝试过:

https://www.myapplication.com/apifolder/key/X-API-KEY/FOO - 返回 ({"status":false,"error":"Invalid API Key."})

https://www.myapplication.com/apifolder/key?X-API-KEY=FOO - 返回 ({"status":false,"error":"未知方法。"})

并尝试了更多查询,但似乎没有一个有效,我唯一的问题是......

如何使这个 key.php 工作?对于这么简单的问题,我很抱歉提前谢谢你

【问题讨论】:

  • 提供有效的 API 密钥并在您的 api 调用中使用有效的方法。这应该记录在您获得库附近的某个地方。
  • 这不是一个简单的问题,有几个人遇到过这个问题,老实说菲尔可能需要更新他的文档。我提供了一个答案。
  • 谢谢 Robin 是的 FOO 是放置在我的 key_table 中并针对 get() 方法进行测试的有效密钥,并且似乎工作正常,除非我尝试执行 post 方法时它只返回一个错误,

标签: codeigniter rest key


【解决方案1】:

请参阅我自己的问题的自我接受的答案... Phils 文档未提供此信息。我不得不自己去图书馆。

我最终发现 403 被禁止是因为我没有提供 api 密钥来生成密钥..
有点模棱两可,因为菲尔的文档没有说明在生成密钥之前需要现有的 api 密钥。 我只是在数据库中的表中创建了一个伪造的密钥,并在调用/key/index?X-API-KEY=boguskey时引用了它@

CodeIgniter REST API Library Ajax PUT throwing 403 Forbidden

【讨论】:

  • 已更新:谢谢 Gorelative,我已经在使用为我的 key_table 创建的伪造密钥,并且一直在使用 get 方法,问题是当我尝试执行 PUT/POST 时方法它总是返回一个 ({"status":false,"error":"Invalid API Key."}) 作为响应,你知道我如何做一个 post 或 put 方法来通过 CURL 生成一个密钥( Codeigniter 卷曲库)?就像你通过 $ajax 所做的一样,非常感谢
  • 您需要将密钥作为 http 标头传递。或帖子变量。要么在 URL 中传递 api 密钥.. 就像我上面提到的那样使用?X-API-KEY=
  • @gorelative 在 api_keys 数据库中,我不确定其目的是什么。 user_id、级别、ignore_limits、is_private_key、ip_addresses。你什么时候可以使用这些字段?
猜你喜欢
  • 2022-11-16
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
相关资源
最近更新 更多