php - Codeigniter REST API key 不起作用

标签 php rest codeigniter postman api-key

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

这是我当前的配置

休息.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';

我的表是使用以下 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')

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

路由.php

$route['api/v1/foo/(:any)'] = 'Api_v1/foo/$1';

最佳答案

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

      $this->output->_display();
      exit;

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

我整天都在为这个问题而苦恼。我刚刚测试了 Chris 的解决方案,一切似乎都运行良好。

关于php - Codeigniter REST API key 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41965609/

相关文章:

php - Laravel 5.4 Markdown 邮件字符问题

php - NGINX/PHP - 无法通过 php 脚本提供 jpeg

php - 导航期间注销

http - RESTful 数据结构模式

php - CodeIgniter htaccess 和 URL 重写问题

php - MySQL 大圆距离(Haversine 公式)

REST API 通过 SSL 的 HTTP 基本身份验证

java - 在 Spring 中为 RestTemplate 客户端抛出 ResourceAccessException vs HttpClientErrorException

php - codeigniter 提示和技巧

php - 在 CodeIgniter 中使用模型