2013-08-29 2 views
0

제 웹 사이트에 타사 로그인을 위해 google plus api를 사용하려고합니다.OAuth2 액세스 토큰을 가져 오는 중 오류가 발생했습니다 : 'invalid_request

나는, 을 로그인 사용자에 대한 URI를 생성하는 클래스 Google_Client 방법 createAuthUrl를 사용하여 페이지 내 웹 사이트 페이지로 리디렉션됩니다 인증, 을 완료하지만 결과를 확인하는 방법 Google_Client.authenticate를 사용할 때, 내가 가지고 어떻게이 곳에서 오류를 수행 확인할 수 있습니다, '

그래서

INVALID_REQUEST : 메시지,

오류의 OAuth2 액세스 토큰을 가져 오는 오류 다음? 어쩌면 세션 또는 어딘가에

+0

Rfer https://developers.google.com/accounts/docs/OAuth2WebServer –

+0

콜백의 인증 코드로 무엇을 했습니까? – roninblade

+0

그 코드를 사용하여 서버용 토큰을 가져올 수도 있습니다. 서버에 코드를 전달하기 만하면 액세스 토큰에 대한 코드를 교환하여 클라이언트와 서버 모두에 권한이 부여됩니다. https://developers.google.com/+/web/signin/server-side-flow – Joanna

답변

2

나 자신이 직접이 문제가 발생했습니다. 그것이 나왔던 것에 따라, 나는 클라이언트의 건설에있어서 일관 적이 지 않았다. 리디렉션 URI에 인증 코드가 포함 된 반환 된 쿼리 문자열이 포함되어 있지 않은지 확인하십시오!

예를 들어이 작동하지 않습니다

$client->setRedirectUri('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); 

REQUEST_URI이 다를 때 구글에서 사용자 돌아갑니다.

+0

+1 나를 올바른 방향으로 가리키기 위해. 제 경우 자바 스크립트 클라이언트는 Google API (gapi)를 사용하여 grantOfflineAccess 메소드를 사용하여 서버에 액세스 토큰을 부여합니다. Google 가이드 (https://developers.google.com/identity/sign-in/web/server-side-flow#step_6_send_the_authorization_code_to_the_server)에 따르면 grantOfflineAccess 메소드가 json 매개 변수 ({ 'redirect_uri': 'postmessage'}와 함께 호출됩니다.) Google 앱에 대해 리디렉션이 정의되지 않은 경우 이 경우 서버는 $ client-> setRedirectURi ('postmessage')를 호출해야합니다. authenticate 메소드를 호출하기 전에. – jkincali

관련 문제