2011-08-17 4 views
2

PHP.net에서 OAuthProvider 라이브러리를 사용하려하고 있으며, 물론 문서화되어 있지 않습니다. 나는 Rasmus의 튜토리얼을 따랐고 djpate.com의 튜토리얼을 따라 갔다. 둘 중 누구도 나를 위해 일하지 않았고 Rasmus는 소스에 연결되지 않았다. 예제로 링크 된 소스는 당연히 혼란 스럽다. 물론 ' 실행했을 때 작동하지 않습니다.PHP OAuthProvider 라이브러리 - invalid_signature, OAuth Flow ... 그냥 혼란 스러운가

나는 흐름 어쨌든해야하는데 어떤 T.

에 튜토리얼을 따라했기 때문에 나는 항상 내가 정말 이해가되지 않는 "서명이 일치하지 않습니다"오류가 발생하는 것

? 1. 고객 키/암호를 만듭니다. 검사. 2. 액세스 토큰을 받으시겠습니까? 나는 오류가있다 - 서명은 어디에서 왔는가? 3. 요청 토큰을 받으시겠습니까? 오류가 발생했습니다

OAuthProvider를 만들어 원격으로 내 API를 호출 할 수있는 고객 계정을 만들 수 있습니다. 어쨌든 초보자 용으로 잘 설명되어 있지 않은 것처럼 보입니다.

누군가가 OAuthProvider 라이브러리를 사용하고 있거나 더 자세히 설명해 주시면 감사하겠습니다.

미리 감사드립니다.

답변

0

비슷한 오류가 발생합니다. 내 경우에는 http : https url의 서명 불일치로 인해 발생하는 것 같습니다.

http와 https간에 리디렉션되는지 확인합니다.

2

http://oauth.net/core/1.0a/은 기본 흐름을 알려줍니다.

  1. 소비자는 소비자 키와 비밀을 얻습니다.
  2. 소비자가 요청 토큰을 가져옵니다.
  3. 소비자가 사용자를 공급자의 인증 끝점으로 리디렉션합니다.
  4. 사용자가 요청 토큰에 서명하거나 서명하지 않습니다.
  5. 소비자가 서명 된 요청 토큰에 대한 인증 토큰을 교체합니다.
  6. 소비자는 인증 토큰을 사용하여 보호 된 정보에 액세스합니다.

http://oauth.net/core/1.0a/#signing_process은 요청에 서명하는 방법을 설명합니다.

"서명 프로세스는 소비자 시크릿 및 토큰 시크릿 을 요청에 포함 된 값으로 인코딩합니다."

pecl oauth/oauthprovider 코드를 사용하는 경우 서명이 자동으로 양측에 생성됩니다 (문서화되지 않았지만 사실).

catch (OAuthException $E) 
{ 
    error_log(print_r($this->provider, true)); 
    echo OAuthProvider::reportProblem($E); 
    $this->oauth_error = true; 
} 

과 당신의 OAuth 소비자 oauthexception 캐치 부분에 다음과 같은 :

catch(OAuthException $E) 
{ 
    error_log(print_r($oauth, true)); 
    echo $E->getMessage(); 
} 

이런 식으로 당신은 서명이 공급자에 oauthexception 캐치 부분에 다음을 넣어 무엇인지 확인할 수 있습니다 오류 로그를 검사하여 서명이 무엇인지, 실제로 일치하지 않는지 여부를 확인할 수 있습니다.