2014-11-25 4 views
2

사용자를 인증하기 위해 ion_auth 라이브러리에서 코드 점화 장치 2.2.0을 사용하고 있지만 이제는 편안한 서비스를 만들어야하고 this 라이브러리를 사용하고 싶습니다. 나는 rest.php에서 rest_auth 매개 변수를 'digest'로 바꿀 수 있고 auth_source를 'library'로 정의 할 수 있다는 것을 알았습니다. 문제는 인증 라이브러리로 ion_auth 라이브러리를 설정할 수 있는지 여부입니다. CodeIgniter 2.2.0 + ION_Auth + 안정적인 API

$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; 
} 

에 새로운 기능을 만들어 내 /application/confing/rest.php 파일에

1

나는 그의 환경 설정을 설정 그럼 내 예제 서비스에 연결하려했지만 대답은 :

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

내 서버에서 일부 디버깅을 시도하고 문제는 get_hashed_password() 함수가 md5를 사용하여 암호를 반환해야한다고 생각하고 ion_auth가 bcrypt를 사용하여 데이터베이스에서 암호를 직접 가져온 경우입니다. 이것이 1411 번 라인의 REST_controller에서 다이제스트 [ 'response']와 valid_response 변수가 동일하지 않은 이유입니다.

{"status":false,"error":"Invalid API Key "} 

사람 : 다음 내 문제는 내가 항상 다음과 같은 오류를 얻고 있다는 것입니다

는 또한 자격 증명을 받아 REST_crontroller을 강제로 시도 (나는 그것이 올바른 아니라고 알고 있지만 나는 몇 가지 테스트를하고 있었다) 어떻게 작동시키는 지 알고 있습니까?

도움 주셔서 감사합니다.

+0

컨트롤러를 테스트하는 방법은 무엇입니까? curl 또는 일종의 REST 클라이언트를 사용하고 있습니까? (서버에 자격 증명을 보내는 방법) – Kyslik

+0

안녕하세요 Kyslik! 나는 CURL, CocoaRestClient와 Safari라는 Rest 클라이언트를 사용해 보았습니다. – llKoull

+0

이미 해시 된 비밀번호를? 'get_hashed_password' 함수에서 해싱을 볼 수 없기 때문입니다. – Kyslik

답변

0

다이제스트 인증의 경우 라이브러리 함수는 해당 사용자 이름에 대해 이미 저장된 md5 (username : restrealm : password)를 반환해야합니다. | 예컨대 : MD5 ('관리자 : REST API : 1234') = '1e957ebc35631ab22d5bd6526bd14ea2'

내가 노력하고 내가 전달 : 는 MD5를 반환하려고 ('$ 로그인 : REST API : $ 암호'); $ login은 로그인입니다. et $ password는 암호입니다.