2011-08-17 5 views
0

Drupal 6의 서비스 모듈을 사용하여 JSON 형식의 일부 사용자 정의보기에서 데이터를 가져와 조사하고 있습니다. 나는 http://drupal.org/node/308629에있는 기사를 읽고이 프로젝트의 VB 버전을 만들었습니다 (https://[email protected]/sharpred/ConsoleApplicationDrupal.git까지 푸시).잘못된 API 키

"잘못된 API 키"가 나타나는 코드를 처음 실행할 때 다음 토큰이 이전에 사용되었습니다. 요청. 다른 넌스 키로 다시 시도하십시오. " 두 번째 오류는 코드가 실행될 때마다 새로운 랜덤 nonce를 생성하기 때문에 조금 가짜 IMO입니다.

또한 첫 번째 실행에서는 타임 스탬프 만 포함하고 nonce 또는 도메인 값은 포함하지 않는 항목을 services_timestamp_nonce 테이블에 만듭니다. 이 레코드를 삭제하면 "invalid api key"메시지로 돌아갑니다.

코드는 인증되지 않은 상태로 작동하며 사이트의 /admin/build/services/browse/views.get의 메소드 호출도 작동합니다.

왜 이것이 작동하지 않는가?

"invalid api key"의 가장 일반적인 소스는 사용하는 타임 스탬프가 잘못되었거나 api 키가 해시 생성에 사용 된 도메인과 일치하지 않는 것 같습니다. 내 경우에서 볼 수있는 한 사실도 없습니다. 타임 스탬프와 해시를 생성하는 데 사용 된 코드의 요지를 만들었습니다. https://gist.github.com/1151222

누구든지이 프로세스가 작동하도록 도움을 줄 수 있습니까?

답변

0

나는 서비스 모듈에 대한 코드를 통해 트롤링 한 후에이 사실을 알게되었습니다. 내 멀티 파트 양식의 일부 값은 따옴표로 묶지 않았으므로 services_key_auth 모듈에서 null로 처리되고있었습니다. 즉, 첫 번째 패스에서는 타임 스탬프 만 nonce 테이블에 기록되고 계산 된 해시는 따옴표 때문에 내 해시와 일치하지 않습니다. 후속 업데이트에서 모듈은 null 값을 검색하고 데이터베이스에서 값을 찾고 이전에 사용 된 결과를 반환했습니다. 다른 사람이이 문제를 발견하면 위에 링크 된 github 프로젝트를 가져 와서 내 코드를 살펴보십시오.