Codeigniter REST API密钥不起作用

Jud*_*des 5 php rest codeigniter api-key postman

我正在使用chriskacerguis/codeigniter-restserver来创建我的其他api服务器,我正在尝试启用api密钥,但问题是即使我按照说明操作,我也无法使用任何密钥进行身份验证,即使所有请求都通过,即使他们在请求中没有api密钥头.

这是我目前的配置

rest.php

$config['rest_keys_table'] = 'keys';
$config['rest_enable_keys'] = TRUE;
$config['rest_key_column'] = 'api_key';
$config['rest_limits_method'] = 'ROUTED_URL';
$config['rest_key_name'] = 'X-API-KEY';
Run Code Online (Sandbox Code Playgroud)

我的表是使用以下sql查询创建的.

CREATE TABLE `keys` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`api_key` varchar(255) NOT NULL,
`level` int(2) NOT NULL,
`ignore_limits` tinyint(1) NOT NULL DEFAULT '0',
`is_private_key` tinyint(1) NOT NULL DEFAULT '0',
`ip_addresses` text,
`date_created` int(11) NOT NULL,
`api_key_activated` enum('yes','no') NOT NULL DEFAULT 'no'
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 INSERT INTO `keys` (`id`, `user_id`, `api_key`, `level`, `ignore_limits`, 
 `is_private_key`, `ip_addresses`, `date_created`, `api_key_activated`) 
 VALUES
 (1, 1, '1234', 10, 0, 0, NULL, 0, 'no'), (1, 1, '12345', 10, 0, 0, NULL, 0, 
 'yes')
Run Code Online (Sandbox Code Playgroud)

问题是请求无论如何都会通过.我已经启用了项目中的路由,这是否会导致问题?

routes.php文件

$route['api/v1/foo/(:any)'] = 'Api_v1/foo/$1';
Run Code Online (Sandbox Code Playgroud)

ale*_*ano 2

所以我只是一个信使,正如Chris一样,已经指出问题出在 REST_Controller.php 中,只需添加

      $this->output->_display();
      exit;
Run Code Online (Sandbox Code Playgroud)

在 REST_Controller.php 的第 828 行,问题出在 codeigniter 3 的最新版本和 chriskacerguis/codeigniter-restserver 的最新版本上。

我一整天都在为此奋斗。我刚刚测试了克里斯的解决方案,一切似乎都工作正常。