2011-10-09 5 views
4

Google과의 인증 및 그 이후의 서비스 사용에 OAuth1.0 + OpenID Hybrid 프로토콜을 성공적으로 사용했습니다.Google 하이브리드 프로토콜 인증 문제

그러나 특정 사용자 계정에 대해 오류가 발생합니다. 나의 현재 흐름 :

  • 이되면, 사용자가 성공적으로 인증하고 권한 요청, 응용 프로그램의 반환을 승인 :

    1. 은 오픈 ID와의 OAuth 매개 변수 (https://accounts.google.com/o/openid2/auth?https://accounts.google.com/o/openid2/auth?openid.ns=http://specs.openid.net/auth/2.0&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select&.....&openid.ns.ext2=http://specs.openid.net/extensions/oauth/1.0&openid.ext2.consumer=mywebsite.com&openid.ext2.scope=https://picasaweb.google.com/data+https://www-opensocial.googleusercontent.com/api/people/+http://www.google.com/m8/feeds/ 등)와 디스커버리에게 제공에

    2. 리디렉션 사용자를 수행 "openid.ext2.request_token"에서 승인 토큰을 추출한 후 위의 요청과 비슷한 문자열을 사용하여 지정된 callbackurl로 돌아간 다음이를 전달하여 액세스 토큰을 얻습니다.

    그러나 특정 사용자 계정에 대해 대신 성공적으로 인증 및 권한 부여 후 위에서 언급 한 바와 같이 결과를 전달하는, 구글은 쿼리 문자열의 모든 매개 변수없이 다시 내 응용 프로그램에 다음 몇 가지 URL https://accounts.google.com/o/openid2/approval?xsrfsign=AC9jObYAAAAATpF6x6S6Ac7MfHaZ로 리디렉션합니다.

    다른 계정에서도 동일한 코드가 작동합니다. 한 계정에 대해 특별한 것이 무엇인지 식별 ​​할 수 없습니다 (단 지난 달에 만들었습니다). 참고로, 이것은 피카사를 범위에 포함 할 때만 발생합니다. picasa를 제외하면 작동합니다.

    도와주세요.

  • 답변

    2

    request_token 요청을 추가하여이 문제를 해결할 수있었습니다. 이상하게도, 대부분의 계정에 대해이 요청을하지 않아도 작동합니다. 그러나 새 계정을 만들 때 요청시이 매개 변수를 명시 적으로 설정해야했습니다. 사용자를 xsrfsign ..로 리디렉션하는 대신이 매개 변수가 설정되었습니다. URL에 사용자 세부 정보 및 토큰을 요청했습니다.