使用 RestServer 的 Api 密钥无效
Invalid Api key using RestServer
我正在使用the codeigniter rest server api library.
当我输入 http://localhost/projects/myapi/key/index_put.php 并按回车键时出现以下错误:
<xml>
<status>0</status>
<error>Invalid API Key</error>
</xml>
当我在 url 中给出一个虚拟字符串时,例如:
http://localhost/projects/myapi/key/index_put.php?X-API-KEY=asldfj9alsdjflja97979797997
我遇到了同样的问题。有什么想法吗?
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
}
}
我遇到了同样的问题。不要在 URL 中提及 put/get/post,RestServer 本身会根据您传递的参数识别请求性质,解决您的问题需要两步。
1st Step :
http://localhost/projects/myapi/key/index_put.php
必须更改为:
http://localhost/projects/myapi/key/index.php
2nd step:
在键 table 中使用 sha1
(最多 40 个字符)创建一个 api kay(table 结构显示在 config/rest.php 文件),
在 is_private_key
字段中输入 1,在 ip_address
字段中输入 ::1。
创建记录,并再次检查。
这个问题很老,但对于那些发现这个问题的人来说,答案是:
库 https://github.com/chriskacerguis/codeigniter-restserver 使用 PUT 方法时,API KEY 应该在 put 头变量中作为 x-www-form-urlencoded 类型。
使用google chrome 邮递员并填写如下图:
我正在使用the codeigniter rest server api library.
当我输入 http://localhost/projects/myapi/key/index_put.php 并按回车键时出现以下错误:
<xml>
<status>0</status>
<error>Invalid API Key</error>
</xml>
当我在 url 中给出一个虚拟字符串时,例如:
http://localhost/projects/myapi/key/index_put.php?X-API-KEY=asldfj9alsdjflja97979797997
我遇到了同样的问题。有什么想法吗?
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
}
}
我遇到了同样的问题。不要在 URL 中提及 put/get/post,RestServer 本身会根据您传递的参数识别请求性质,解决您的问题需要两步。
1st Step :
http://localhost/projects/myapi/key/index_put.php
必须更改为:
http://localhost/projects/myapi/key/index.php
2nd step:
在键 table 中使用 sha1
(最多 40 个字符)创建一个 api kay(table 结构显示在 config/rest.php 文件),
在 is_private_key
字段中输入 1,在 ip_address
字段中输入 ::1。
创建记录,并再次检查。
这个问题很老,但对于那些发现这个问题的人来说,答案是:
库 https://github.com/chriskacerguis/codeigniter-restserver 使用 PUT 方法时,API KEY 应该在 put 头变量中作为 x-www-form-urlencoded 类型。
使用google chrome 邮递员并填写如下图: