2015-09-24 2 views
1

Я пытаюсь интегрировать код codeigniter-restserver в мой существующий проект CI3. Я не могу понять, как получить рабочие полномочия за прошлую проверку подлинности.codeigniter-restserver: digest auth всегда возвращает «недопустимые учетные данные»

Вот код, он застрять на (REST_Controller.php):

if (strcasecmp($digest['response'], $valid_response) !== 0) 
    { 
     // Display an error response 
     $this->response([ 
       $this->config->item('rest_status_field_name') => "false", 
       $this->config->item('rest_message_field_name') => $this->lang->line('text_rest_invalid_credentials') 
      ], self::HTTP_UNAUTHORIZED); 
    } 

rest.php // конфиг

$config['rest_auth'] = 'digest'; 
$config['auth_source'] = 'library'; 
$config['auth_library_class'] = 'auth_model'; 
$config['auth_library_function'] = 'validate_user'; 

Класс упоминалось выше (от авт база данных):

function validate_user($username='',$password=null) 
    { 
     if($username!=''&&$password!=null) 
     { 
      $this->db->select('md5'); 
      $this->db->where('username', $username); 
      $query = $this->db->get('user'); 
      $result = $query->result_array(); 
      return $result[0]['md5']; // stored as md5(username:realm:password); 
     } 
     return false; 
    } 

ответ JSON:

{"status":"false","error":"Invalid credentials"} 

Использование почтальона и вот как у меня есть, что установка для заголовка:

Digest username="user", realm="REST API", nonce="", uri="/restapi/dashboard", response="928e85782ff2322fd2232ebbac4f058f", opaque="" 

ответ

1

Убедитесь, что вы включить в autho

+0

Это не дает ответа на этот вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/17058581) –

0

qop=auth @ Japheth прав, но вы должны добавить Nonce, Nonce Count и Client Nonce, значение будет пустое.

nonce=" " // Nonce 
nc=" "  // Nonce Count 
cnonce=" " // Client Nonce 
qop=auth 

Заголовок будет выглядеть следующим образом:

Authorization:Digest username="user", realm="REST API", nonce=" ", uri="/restapi/dashboard", qop=auth, nc= , cnonce=" ", response="928e85782ff2322fd2232ebbac4f058f", opaque="" 

 Смежные вопросы

  • Нет связанных вопросов^_^