2016-06-07 3 views
0

AWS EC2에서 실행되는 웹 서버의 Google 캘린더 API로 인증하기 위해 Google Oauth 2를 사용하려고합니다.Google Oauth 오류 : redirect_uri_mismatch

자격증 명을 생성 할 때 'OAuth 클라이언트 ID'를 선택한 다음 '웹 응용 프로그램'을 선택했습니다. 승인 된 리디렉션 URI의 경우 입력 한 내용은 다음과 같습니다.

http://ec2-XX-XX-XX-XXX.eu-west-1.compute.amazonaws.com (내 EC2 인스턴스의 IP가 비어 있습니다.) 이 URL이 콜백을 원하는 정확한 URL인지 확인했습니다. 서버 로그에 생성됩니다

링크의 형식은 :

https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=XXXXXXXXXXXX-XXXXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=http://localhost:47258/Callback&response_type=code&scope=https://www.googleapis.com/auth/calendar.readonly

내가있는 링크를 클릭 할 때 나는 오류 '오류 : redirect_uri_mismatch'를 얻을.

나는 this SO question 읽고 내가 HTTP 사용하고 있음을 확인하고있다 적이없는 시운전 '/'

내가 생성 된 URL이 그 안에 '로컬 호스트'하지 말았어야하지만 난 client_secret를 재설정 한 것으로 의심 .json을 여러 번하고 새 클라이언트 비밀 번호로 Tomcat을 다시 시작할 때마다 localhost와는 여전히 다른 포트를 통해 링크를 얻는다.

로컬에서는 이전에 자격 증명 유형을 '기타'로 선택했으며 승인 된 리디렉션 URI에 대한 옵션이 제공되지 않았습니다. EC2 인스턴스에서이 작업을 시도했지만이 작업은 리디렉션 URI에서 원하는 컨트롤을 제공하지 않고 localhost를 통해 리디렉션을 보냅니다.

답변

1

요청에 제공된 URI (포트 포함)가 애플리케이션에 등록 된 URI와 일치하지 않을 때 Google에서 redirect_uri_mismatch을 던졌습니다.

Authorised redirect URIsAuthorised JavaScript origins을 웹 콘솔에 올바르게 등록했는지 확인하십시오.

이것은 저에게 적합한 예제 구성입니다. enter image description here

+0

감사합니다. 문제는 포트 번호입니다. – Fraser

0

Oath 클라이언트 ID를 만들 때 웹 응용 프로그램을 선택하지 말고 "기타"를 선택하십시오. 이렇게하면 리디렉션 URI가 필요하지 않습니다.

관련 문제