Я знаю, что на вопрос был дан ответ, но я сделал это аналогичным образом, не взломав ядро CI.Я добавил следующее в файл application / config / config.php:
$config['csrf_ignore'] = array('api');
Массив может содержать любые пути, которые вам нравятся.Приведенный выше пример будет применяться ко всем путям, начинающимся с 'api'.
Затем я добавил следующий файл: application / core / MY_Input.php :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Input extends CI_Input
{
function _sanitize_globals()
{
$ignore_csrf = config_item('csrf_ignore');
if (is_array($ignore_csrf) && count($ignore_csrf))
{
global $URI;
$haystack = $URI->uri_string();
foreach($ignore_csrf as $needle)
{
if (strlen($haystack) >= strlen($needle) && substr($haystack, 0, strlen($needle)) == $needle)
{
$this->_enable_csrf = FALSE;
break;
}
}
}
parent::_sanitize_globals();
}
}
/* EOF: MY_Input */