현재이 기사에서 설명한대로 Google Api 크로스 클라이언트 인증을위한 웹 구성 요소를 개발 중입니다. 또한 https://developers.google.com/identity/protocols/CrossClientAuthGoogle 크로스 클라이언트 인증 및 잘못된 권한 오류
, 나는 레일과 인증 코드가 웹을 사용하여 안드로이드 응용 프로그램을 통해 얻을 수있다이 문서 https://developers.google.com/identity/protocols/OAuth2WebServer#handlingtheresponse
에 설명 된대로 내가 구글-API 클라이언트 보석을 사용하고있는 나는 환경 클라이언트 ID를 가져 와서 웹 API로 전달하여 교환해야합니다. 나는 또한 모든 경우에
auth_client = Google::APIClient::ClientSecrets.load("/path/to/client_secrets.json").to_
authorization
auth_client.update!(
:grant_type => 'authorization_code'
)
auth_client.code = code
auth_client.fetch_access_token!
일을 시도했습니다
auth_client = Google::APIClient::ClientSecrets.load("/path/to/client_secrets.json").to_
authorization
auth_client.code = code
auth_client.fetch_access_token!
을 다음과 같이 교환에 보석 및 코드의 내 사용은 내가 더 설명이 구글에서 잘못된 부여 오류가 발생합니다.
필자는 curl 및 postman과 같은 다른 API 도구를 활용하고 google oauth 놀이터를 사용하여 보석을 우회하려고 URL을 구성하려고 시도했습니다.
유효하지 않은 승인 오류를 생성하는 방법에 대한 통찰력 또는 보석 외부의 Google과 토큰을 직접 교환하는 컬 요청 생성 방법에 대한 통찰력이 있으면 대단히 감사하겠습니다.
Android 클라이언트는 인증 코드를 요청하기 위해 클라이언트 ID 만 필요로한다는 것을 알고 있습니다. 그렇다면 동일한 클라이언트 ID가 인증 코드를 요청하는 데 사용되고 있는지 확인하여이를 교환하는 데 사용됩니다. – rantingsonrails
당신은 안드로이드에서 그것을 얻는다라고 말한다 tgen 웹에서 그것을 사용한다 당신은 그 웹을 할 수 없다. 그리고 안드로이드는 2 개의 완전히 다른 클라이언트 ID를 가지고 있고 그 다른 자격증 명을 비밀로한다. – DaImTo
나는 여기에서 문서를 언급하고있다. https://developers.google.com/identity/protocols/CrossClientAuth#offlineAccess 필자는 안드로이드 클라이언트가 인증 코드를 얻기위한 매개 변수로 웹 클라이언트 ID를 전달한다는 것을 알고 있습니다. – rantingsonrails