Я использую код igniter 2.2.0 с библиотекой ion_auth для аутентификации моих пользователей, но теперь мне нужно создать несколько успокоительных сервисов, и я хочу использовать библиотеку this. Я видел, что в rest.php я могу изменить параметр rest_auth на «digest» и что я могу определить auth_source как «библиотеку», проблема в том, что я не знаю, могу ли я установить библиотеку ion_auth в качестве библиотеки проверки подлинности.CodeIgniter 2.2.0 + ION_Auth + Restful API
1- На мой файл /application/confing/rest.php я поставил эти префы:
$config['rest_auth'] = 'digest';
$config['auth_source'] = 'library';
$config['auth_library_class'] = 'ion_auth';
$config['auth_library_function'] = 'get_hashed_password';
$config['rest_enable_keys'] = TRUE;
2- я создал новую функцию/приложения/библиотеки/ion_auth
public function get_hashed_password($username) {
$user = $this->db->select('password')->where('email',$username)->get('users');
if ($user->num_rows() == 0) {
return false;
}
$user_details = $user->row();
$HA1 = $user_details->password;
return $HA1;
}
Затем я попытался подключиться к примеру службы, но ответ был:
{"status":0,"error":"Invalid credentials"}
Я пытался сделать некоторые отладки на моем сервере, и я подумайте, что проблема в том, что функция get_hashed_password() должна возвращать пароль с помощью md5, и если я получу пароль непосредственно из базы данных, ion_auth использует bcrypt. Я думаю, что именно поэтому дайджест ['response'] и переменные valid_response от REST_controller в строке 1411 не равны.
Я также пытался заставить REST_crontroller принять полномочия (я знаю, что это не правильно, но я делаю некоторые тесты), то моя проблема в том, что я всегда получаю следующее сообщение об ошибке:
{"status":false,"error":"Invalid API Key "}
Любой человек знает, как заставить его работать?
Благодарим за помощь!
Как вы тестируете контроллер? Вы используете завиток или какой-то клиент REST. (как вы отправляете учетные данные на сервер) – Kyslik
Привет, Kyslik! Я попытался использовать cURL, клиент Rest, называемый CocoaRestClient и Safari. – llKoull
Вы отправляете уже хешированный пароль? потому что я не вижу никакого хэширования в функции 'get_hashed_password'. – Kyslik