当前位置: 首页 > 知识库问答 >
问题:

使用RestServer的Api密钥无效

孔鹤龄
2023-03-14

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

我进去的时候http://localhost/projects/myapi/key/index_put.php然后按enter键会出现以下错误:

<xml>
<status>0</status>
<error>Invalid API Key</error>
</xml>

当我在url中给出一个伪字符串时,如:

http://localhost/projects/myapi/key/index_put.php?X-API-KEY=ASLDFJ9ALSDJFLJA97997

我也有同样的问题。任何想法?

index_put.php

public function index_put() {
        // Build a new key
        $key = self::_generate_key();
        // If no key level provided, give them a rubbish one
        $level = $this->put('level') ? $this->put('level') : 1;
        $ignore_limits = $this->put('ignore_limits') ? $this->put('ignore_limits') : 1;

        // Insert the new key
        if (self::_insert_key($key, array('level' => $level, 'ignore_limits' => $ignore_limits))) {
            $this->response(array('status' => 1, 'key' => $key), 201); // 201 = Created
        } else {
            $this->response(array('status' => 0, 'error' => 'Could not save the key.'), 500); // 500 = Internal Server Error
        }
    }

共有2个答案

蓬弘
2023-03-14

这个问题由来已久,但对于那些发现这个问题的人来说,答案是:

库https://github.com/chriskacerguis/codeigniter-restserver当使用PUT方法时,API KEY应该以x-wow-form-urlencoded类型在put头变量中。

邵和硕
2023-03-14

我也面临同样的问题。不要在URL中提及put/get/post,RestServer本身根据您传递的参数识别请求性质,这是解决问题所需的两个步骤。

第一步:

http://localhost/projects/myapi/key/index_put.php

必须改为:

http://localhost/projects/myapi/key/index.php

第二步:

在keys表(config/rest.php文件中显示的表结构)中使用sha1(最多40个字符)创建api kay,在is_private_key字段中输入1,在ip_address字段中输入::1。创建记录,然后再次检查。

 类似资料:
  • 我正在使用codeigniter rest服务器api库。 我进去的时候http://localhost/RESTapi/api/question?X-API-KEY=XXX在Postman中使用我得到的PUT方法:{“status”:false,“error”:“无效的API键”} 它与GET方法配合得很好如何解决此问题?

  • Swagger支持api密钥的安全性,但这似乎仅限于单个参数。 有没有办法定义一组参数(key和secret)作为请求中的参数? 或者,唯一的方法就是跳过安全方案,只将这些参数添加到每个请求中?

  • 我正在尝试将Fabric安装到我的iOS应用程序中。我下载了Fabric应用程序来安装Crashlytics,但是当我在构建阶段添加应用程序提供的运行脚本时,在构建项目之后,我得到了错误: 第2行:1:MyFireBaseID:IOS:MyFireBaseID=1:My:App:ID:command找不到Fabric.Framework/Run 1.7.0(208)错误:Fabric:配置问题 F

  • 我得到异常“http://api.openweathermap.org/data/2.5/weather?q=sydney”。有人能帮忙怎么用吗。当我粘贴以下内容时,可以很好地使用web浏览器 我也试过下面的组合,但没有运气

  • 我正在使用secrets gradle插件读取我在本地应用程序中输入的API密钥。财产。 我已将此代码添加到根 对于应用程序 这是我的 然后当我试图从任何类/应用程序不在那里。我是不是错过了什么台阶?已经尝试了几个小时,但没有找到任何方法来实现这一点。