2012-09-13 1 views
0

OAuth (1.0)를 배우려고 노력 중이며 Google에서 내 연락처에 액세스하여 코드를 테스트했습니다. 친구/소비자 관계 (Google은 익명/익명의 소비자 토큰 허용)를 설정하지 않아도되고 Google에서 OAuth 운동장을 통해 나를 도울 수 있기 때문에 쉽습니다. https://www.google.com/accounts/OAuthGetRequestToken?scope=https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F Google OAuth 1.0 - 범위 포트를 443으로 설정합니다 (AuthSub 토큰의 범위가 잘못되었습니다).

  • 승인 요청 토큰 : https://www.google.com/accounts/OAuthAuthorizeToken
  • 액세스 토큰 : https://www.google.com/accounts/OAuthGetAccessToken
  • 모든 될 듯

    • 요청 토큰에 가서 다음과 같이

      그래서 난 내 코드를 설정 잘 진행 중입니다. 요청 토큰을 괜찮게 받았고, 권한을 부여 받았으며, 액세스 토큰을 얻을 수있었습니다. 나는 그 다음에 요청을 만들려고 https://www.google.com/m8/feeds/contacts/default/full/

      , 나는이 오류지고 유지

      만 문제 : 나는과 같은 요청을 한 경우 때문에이 혼란 한

      : "401 위해 AuthSub 토큰이 잘못 범위가를" OAuth 놀이터에서 동일한 소비자 정보 (http://googlecodesamples.com/oauth_playground/index.php) 모든 것이 올바르게 작동합니다.

      결국, 나는 다음과 같은 질문을 발견 : HTTP/1.1 401 Token invalid - AuthSub token has wrong scope

      상단 대답은 내 솔루션를 알려준를 - 코드는 항상 HTTPS 또는을 위해 443 포트를 설정하기 위해 기록 된 것을 사용했다 JAR 파일 중 하나에 있었다 80 for http. 내 코드를 밟고 포트를 -1로 변경하면 요청이 잘 처리되어 원하는 정보를 얻을 수있었습니다.

      JAR 파일의 코드를 변경할 수 없으므로 필자가 끝내야 할 문제를 해결해야합니다. 그 질문에 대한 대답에서, '조나단'는 말했다 :

      Another workaround would be to include the :443 in the token scope; it just has to match

      나는 ?scope=https%3A%2F%2Fwww.google.com **%3A443** %2Fm8%2Ffeeds%2F에 내 요청 토큰 쿼리 문자열을 변경 시도와 구글은 나에게 요청 토큰을 제공 거부 - 그것은 나에게 Invalid scope: https://www.google.com:443/m8/feeds/ 말 400 오류를했다. https를 http로 변경해도 아무 것도하지 않았습니다. 조나단 (거의 1 년 만에 온라인에 접속하지 못했음)이 제안한 바는 무엇입니까?

    +0

    포트를 자동으로 추가하는 항아리는 무엇입니까? 그것은 당신을 걸고있는 부분 인 것 같습니다. –

    +0

    그것은 나를 위로 넘어 뜨리는 부분이지만, 그 주위에 방법이 없습니다. 어떻게 든 그것을 어떻게해야하는지 이해할 필요가 있습니다. –

    답변

    0

    Google의 인증 범위가 URL이라는 사실은 기본적으로 학문적입니다. 실제로 유용하지는 않지만 (see for yourself) 포트를 추가하면 Google이 혼란스럽게됩니다. 그래서 요나단은 그의 제안에서 잘못되었습니다.

    심지어 URL과 같이 보이는 유일한 이유는 보편적으로 고유 할 것으로 예상 될 수 있기 때문입니다 (이는 틀림없이 사실 일뿐입니다).

    :443을 인증 범위에 넣지 마십시오.

    +0

    흥미 롭; 그러나 원래 443을 제외한 필자의 인증 범위가 있었지만 401 오류가 발생했습니다. Google에서 일하고있는 것으로 나타났습니다. Google이 범위와 관련된 작업에 대해 더 자세히 설명해 주었습니까? 그렇다면 특정 상황에서 어떻게 구성해야하는지 이해하려고 노력할 수 있습니까? –

    관련 문제