Я использую REST Controller от Phil Sturgeon для создания API. Проверка API выполняется с помощью ключей API. В настоящее время существует только один ключ, указанный в таблице api_keys в базе данных и получить доступ к API, используя этот ключ с помощью следующей Curl просьбы моего клиента я настройка:Codeigniter REST API-заголовки и аутентификация
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 45);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/html; charset=utf-8',
'Accept: application/html',
'X_API_PREFIX: ' . $this->apiPrefix(),
'X_API_KEY: ' . $this->apiKey(),
"User-Agent: ShowHouse/" . ShowhouseClient::API_CLIENT_VERSION . '; PHP ' . phpversion() . ' [' . php_uname('s') . ']';
'Accept-Language: ' . $this->_acceptLanguage
));
curl_setopt($ch, CURLOPT_USERPWD, $this->apiKey());
if ('POST' == $method)
{
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
else if ('PUT' == $method)
{
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
else if('GET' != $method)
{
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
}
$response = curl_exec($ch);
Однако я получаю неверный ключ API ответ обратно с сервера API. Проблема, кажется, что на следующей строке в REST_Controller.php:
if (($key = isset($this->_args[$api_key_variable]) ? $this->_args[$api_key_variable] : $this->input->server($key_name)))
как
$this->_args[$api_key_variable]
и
$this->input->server($key_name)
не на самом деле множество. 3 из нас в офисе имеют точно такой же код, проверенный из репозитория управления версиями, с той лишь разницей, что у нас двоих есть Apache 2.4.4, а у другого - Apache 2.2.24. Оба из нас, работающих под управлением 2.4.4, продолжают получать неверную ошибку API-ключа, но все это отлично работает для парня с 2.2.24, который предположил бы, что это проблема Apache, но мы просто не можем понять ее.
Какие-либо идеи, почему это происходит так?
Заранее спасибо.