2014-12-05 3 views
0

나는 OAuth 2.0 서버를 만들기 위해 기본 OAuth 2.0 tutorial을 따라 왔습니다. 그 모든 부분이 잘 작동했지만, Google OAuth2 놀이터에서 this 페이지를 따라 놀려고 할 때 오류가 발생했습니다.Oauth2 토큰에 대한 놀이터 교환 인증 코드 :

http://localhost/wordpress/authorize.php?state=xyz을 인증 용 끝점으로 사용한다는 것을 제외하고는 위의 링크에있는 모든 단계를 수행했습니다. 그렇지 않으면 상태가 필요하다는 오류가 표시되고 아직 코드를 편집하지 않으려 고했기 때문에 모든 단계를 수행했습니다.

이제 API를 승인하면 모든 것이 제대로 작동하는 것 같습니다. 내 로컬 호스트 사이트로 연결되며 요청을 승인하면 OAuth2 놀이터로 돌아갑니다. 다음 단계로 넘어가 토큰에 대해 반환 된 인증 코드를 교환하려고하면 400 오류가 발생합니다.

POST /wordpress/token.php HTTP/1.1 
Host: localhost 
Content-length: 191 
content-type: application/x-www-form-urlencoded 
user-agent: google-oauth-playground 

code=6d408c28d468db6586320bff3aacf16492489b67&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=newclient&scope=& client_secret=newpass&grant_type=authorization_code 
______________________________________________________________________ 

HTTP/1.1 400 Bad Request 
Content-length: 106 
Content-type: text/plain 

An error occured while connecting to the server: Unable to fetch URL: http://localhost/wordpress/token.php 

이가 내 말에 제작 한 간단한 오류가있을 수 있습니다하지만 난 그것을 알아낼 수 없습니다 다음과 같이

전체 요청/응답입니다. 튜토리얼 페이지에서 테스트 할 때 모든 것이 정상적으로 작동하기 때문에 코드가 실제로 문제가되는 것은 아닙니다. 또한 예제에서 사용하는 라이브러리의 파일을 편집하지 않았습니다. 필요한 경우이 게시물을 편집하여 링크가 비활성 상태가 될 수있는 규칙을 준수하는 코드를 포함시킬 수 있습니다.

내가 요청에 대해 알아 차 렸던 한 가지는이 &scope=&client_secret=newpass&grant_type=authorization_code입니다. 범위 매개 변수가 설정되어 있지 않은 것처럼 보였습니다. 결과가 엉망이 될 수도 있습니다.

누구나 OAuth 또는 OAuth2 놀이터에 대한 경험이 있고 상황이 잘못되었다고 생각하면 정말 감사 할 것입니다. 또한, 오랜 질문에 사과드립니다.하지만 할 수있는 한 많은 정보를 포함하고 싶었습니다.

답변

0

액세스 할 수없는 네트워크 (예 : 로컬 호스트)에 OAuth 서버를 호스팅하기 때문에 이러한 현상이 발생합니다. 기본적으로 oauth 놀이터가 자신의 서버 (웹 페이지에서 XHR을 사용하지 않음)를 사용하여 코드를 교환하려 할 때이 서버는 URL http://localhost...을 사용하여 컴퓨터에 액세스 할 수 없습니다.

놀이터에서 이것을 테스트하려면 공개 URL 또는 IP 주소로 OAuth 2.0 서버에 연결할 수 있어야합니다. 대신 로컬 서비스를 외부/인터넷에 노출시키는 것이 좋습니다. 이를 위해 ngrok 또는 localtunnel과 같은 서비스를 사용할 수 있으며 지역 서비스에 대한 공개 URL이 제공되어 놀이터를 설정할 수 있습니다.

+0

ngrok 및 localtunnel에 몇 가지 팁/링크가 추가되었습니다.이 팁/로컬 링크는 로컬 URL을 외부에 노출시킬 수있는 멋진 서비스입니다. – Nivco

관련 문제