2012-07-23 2 views
0

내가 도서관 Oauth php의 OAuth 오류 : 서명의 검증

와 나는 다음입니다 jsOauth 라이브러리 link 를 사용하여 내 서버에서의 Oauth 서비스를 사용하는 폰갭 응용 프로그램을 만드는 중이을 사용하여 PHP로 작성 내의 Oauth 제공자가 실패 this tutorial

그러나 수신 된 요청 토큰과 교환하여 access_token을 요청하는 동안 서버에서 오류가 발생합니다.

OAuth Verification Failed: Verification of signature failed (signature base string was "GET&http%3A%2F%2Fapi.amishra.abc-dev.com%2Foauth%2Faccess_token.php&oauth_callback%3Dhttp%253A%252F%252Fwww.cd.com%26oauth_consumer_key%3Dab17b706d7320aa3607c8a774954eb495f7cccb3338a1f44ad4396c5a9ff69db%26oauth_nonce%3D5B702F7E46305E3B%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1343032505%26oauth_token%3D1ca90d9a8039ebe04e1c25eec852137b0500d0c4f%26oauth_version%3D1.0").

이 오류를 해결하는 방법?

답변

0

승인 단계에서 수신 했어야하는 oauth_verifier 매개 변수를 보내지 않은 것으로 보입니다. 즉, 사용자가 응용 프로그램을 인증 한 후에 콜백이 호출 된 경우입니다. 이는 http://tools.ietf.org/html/rfc5849#section-2.2에있는 최신 OAuth 1.0a 사양에 적용됩니다.

또한 액세스 토큰 요청에 oauth_callback 매개 변수를 보낼 필요가 없습니다. 이는 요청 토큰 단계에서만 필요합니다.

+0

예 oauth_verifier 매개 변수를 보내지 않고 있습니다. 콜백 후 oauth_token http://www.cd.com/?oauth_token=82af5125009056578897fb97bf796e0b0500d13ef –

+0

좋아, 남은 일은 서명을 만들 때 사용하고있는 기본 서명 문자열을 확인하고 오류와 비교하는 것입니다. 메시지. –

+0

서명 기본 문자열은 오류와 같습니다. 이것은 내가 "() ('hash_hmac를'function_exists) \t \t { \t \t \t $ 서명 = base64_encode을 경우 (hash_hmac ("서명을 생성하기 위해 사용하고있는 방법 SHA1 ", $의 base_string, $ 키), TRUE)입니다 ; \t \t} "" –