Google oauth2의 invalid_client


87

YouTube 동영상 업로드를위한 웹 페이지를 만들려고하므로 Google API 콘솔에서 클라이언트 ID를 얻으려고 시도하고 API 콘솔에 다음과 같은 내용이 표시됩니다.

Client ID: 533832195920.apps.googleusercontent.com
Redirect URIs: http://bobyouku.ap01.aws.af.cm/testyoutube.php
https://developers.google.com/oauthplayground

그러나 다음 URL을 사용하여 내 계정을 테스트하려고 할 때 :

https://accounts.google.com/o/oauth2/auth?client_id=533832195920.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fbobyouku.ap01.aws.af.cm%2Ftestyoutube.php&scope=https%3A% 2F % 2Fwww.googleapis.com % 2Fauth % 2Fyoutube & response_type = code & access_type = offline

invalid_client의 결과를 제공합니다. oauth2 놀이터에서 시도해도 같은 실패가 발생합니다.

그래서 무슨 일이 일어나는지 아는 사람이 있습니까?


8
때때로 oauth2 클라이언트 ID가 작동하지 않는 것을 발견했습니다. 이유는 모르겠지만 새 계정을 열고 클라이언트 ID를 다시 만들면 작동합니다.

3
Bob이 맞습니다. 클라이언트 ID를 생성하면이 문제가 해결됩니다
Gabo Esquivel 2014 년

11
클라이언트 ID를 복사 / 붙여 넣기 할 때 후행 공백이 포함되지 않았는지 확인하십시오. 그게 나를 위해 트릭을 했어요 ...
andig

1
나를 위해 나는 클라이언트 비밀을 다시 생성하고 그것이 작동하는 것을 사용합니다. API가 여전히 불안정한 것 같습니다.
Muhammad Talal

답변:


113

제품 이름 설정 / 변경, 프로젝트 이름과 동일한 제품 이름을 만들 때까지이 문제가 발생했습니다.

제품 이름은 프로젝트에 대한 Google Developers Console의 동의 화면 섹션에서 설정할 수 있습니다. 왼쪽 탐색 메뉴의 API 및 인증 아래에서 동의 화면을 선택합니다. 또한 제품 이름 위의 상자에서 이메일 주소를 설정해야합니다.


4
감사합니다!! ""오류 : invalid_client. .의 OAuth 클라이언트는이에 몇 시간을 낭비 "오늘을 찾았지만, 지금 제품 이름을 업데이트 헤이 - 프레스토는 문제가 해결되지 않았 음을 오류가 있습니다. 그래서 오해의 소지가.
IanB

2
상품명은 무엇입니까?
Hubert OG

4
동의 화면에 있습니다. '제품 이름'필드를 작성해야합니다
Foo L

2
이것은 효과가 있었다. 간단히 말해서 '제품 이름' '이메일 주소'필드를 모두 설정하십시오 .
b_archer

2
감사! 내 하루를 구했습니다! 그리고 모든 소셜 제공 업체 중에서 Google은 더 나쁜 문서와 최악의 UI를 가지고 있습니다. 잘못된 탐색과 함께 너무 압도적이고 혼란 스럽습니다. 나는 거의 항상 프로젝트 구성 페이지로 이동하는 방법을 잊어 버립니다.
tintinboss

69

Google 웹 UI에서 값을 복사 한 후 다음을위한 공백이 생겼습니다.

  • client_id
  • secret

상기와 BEGINNING 및 상기 END 모두.


2
이 문제는 여전히 지속됩니다. : P
Abhinay

1
믿을 수 없습니다. API 콘솔에서 "복사"버튼을 클릭해도 ... Google의 개발자 영역이 공백에 민감하다고 생각할 것입니다!
Reisclef

여기에서도 믿을 수 없습니다. 문자열의 양쪽에있는 여분의 공백을 삭제하십시오. 그런 다음 여기에서 설명한 모든 내용을 수행 한 후에도 여전히 작동하지 않는 경우 앱 / 프로젝트를 삭제하고 다시 생성하면 캐싱 문제가있을 수 있습니다.
eigenfield

1
네, 문제는 여전히 존재합니다 !!! 이런 세상에. 공백 하나를 생략하고 다시 확인할 때까지 보이지 않았습니다. 감사.
LukasS

1
꿰매다! 나는 끝에 공간을보고 제거했지만 처음에는 공간을 확인하지 않았습니다.
sulabh

41

모두에서 선행 및 후행 공백 트림 client_idclient_secret. Google의 복사 버튼은이 작업을 수행하지 않습니다.

여기에 이미지 설명 입력

OAuth 동의 화면에 대한 이메일 주소와 제품 이름 필드를 모두 설정합니다.

여기에 이미지 설명 입력


3
당신은 아마 그런 대답에서 당신의 클라이언트 비밀을 드러내서는 안됩니다.
Fernando

1
@Fernando 그것은 버리는 계정입니다.
Shaun Luttin 2016

휴. D : 나이 숀 걱정했다
페르난도

3
이 화면을 어떻게 얻었습니까?
Anthony Kong

2
"계정 버리기"-Google이 아닌, 사용자를 추적하고 "연결된 계정"에 사용한 모든 계정을 묶습니다. 그리고 Google이 계정 중 하나를 금지하면 전체 번들이 차단됩니다. Reddit 에서 "Google 개발자 계정이 종료 됨"을 검색하십시오 .
Alexander Farber

16

Google 개발자 콘솔의 동의 화면에서 EMAIL ADDRESS 및 PRODUCT NAME을 설정하면 "오류 : invalid_client. OAuth 클라이언트를 찾을 수 없습니다."오류가 해결됩니다. 나를 위해.


9

내 ID에 .apps.googleusercontent.com이 두 번 있습니다.

'Your ID HERE'를 복사하여 붙여 넣기 문제였습니다 .apps.googleusercontent.com


5
내 양쪽 끝에 빈 공간이 남았습니다 : /
Christian

고마워 크리스. 그것은 나를 도왔다.
Kiran Pawar

7

이 스레드에서 내 대답을 찾았습니다.

  1. Google 콘솔로 이동했습니다.
  2. 새 프로젝트를 생성하고 새로 고쳤습니다. 제 경우에는 페이지를 만든 후 다시로드되지 않았기 때문입니다.
  3. 새 프로젝트 선택
  4. 클라이언트 ID 생성
  5. 필요한 용도로 사용

감사합니다 : D


6

invalid_client는 단순히 Oauth2 객체를 만들 때 클라이언트 ID와 클라이언트 암호가 잘못되었음을 의미 할 수도 있습니다.


5

제 경우에는 이것이 다른 것으로 판명되었습니다. 즉, 제 코드는 제대로 설정되지 않은 환경 변수를 사용했습니다 (그리고 제 코드에 의해 어리석게 확인되지 않았습니다). 그것을 설정하고, 자산을 다시 컴파일하고, 앱을 다시 시작하는 것이 트릭이었습니다.


1
여기도 마찬가지입니다. 나는 그것을 설정하지만 내 단말기를 다시 시작하는 것을 잊었다했다
quicklikerabbit

5

설명서를 따르는 경우 https://developers.google.com/identity/sign-in/web/sign-in#specify_your_apps_client_id 페이지에서

당신은 볼 수

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

그러나 그것은 잘못되었습니다. 그것은해야한다

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">

문제는 어쨌든 '.apps.googleusercontent.com'이 추가된다는 것입니다. 문서에 나와있는대로 수행하면 '.apps.googleusercontent.com'이 두 번 표시됩니다.


감사합니다. 제안한대로 변경하면 트릭이 수행됩니다.
Pavan Dittakavi

4

내 clientID 및 clientSecret 값에서 불필요한 따옴표를 제거하여이 문제를 해결했습니다.


당신은 전설입니다! Heroku 환경 변수에서 따옴표를 제거했습니다.
grabury

2

오류가 응용 프로그램 이름이 누락되었다고보고 했습니까? 프로젝트 설정 대화 상자에서 프로젝트 이름 (예 : "Project X")을 만들 때까지이 문제가 발생했습니다.


2

아마도 오래된 자격 증명이 유효하지 않습니다

아래 답변을 참조하십시오

stackoverflow 답변

또는 짧은 이름이 작동 할 수 있습니다.

아래의 답변을 참조 유래 대답을

또는 이미 답변 한 프로젝트 이름과 동일한 제품 이름

때때로 하나는 추가 공간을 포함 할 수 있습니다.

이 줄을 두 번 확인하여 올바른 URL로 리디렉션되도록합니다.


1

트림으로 내 문제를 해결했습니다.

'google' => [
    'client_id' =>trim('client_id),
    'client_secret' => trim('client_secret'),
    'redirect' => 'http://localhost:8000/login/google/callback',
],

0

Google API 콘솔에서 프로젝트 이름을 확인하세요. 생성 한 다른 프로젝트를 선택합니다. 나는 같은 오류였다. 내 실수는 다른 프로젝트를 선택하는 것이 었습니다.


0

자격 증명에서 이러한 HTTP 참조 자 (웹 사이트)의 요청을 수락합니다 (선택 사항) 와일드 카드에 별표를 사용합니다. 이 입력란을 비워두면 모든 리퍼러의 요청이 수락됩니다. 프로덕션에서이 키를 사용하기 전에 참조자를 추가해야합니다. 추가 . (스타 닷 스타). 그것은 나를 위해 잘 작동합니다


0

실수로 URL의 Client Secret 부분에 값이 있었지만 Google Credential에는 Android OAuth 2 클라이언트 ID에 대한 클라이언트 암호가 필요하지 않습니다. URL에서 값을 비워 두는 것만으로도 나에게 트릭이되었습니다.


0

나를 위해 일한 단계 :

  1. 작동하지 않는 자격 증명 삭제
  2. 일부 NAME로 새 자격 증명 만들기
  3. OAuth 동의 화면에 동일한 이름을 입력하세요.
  4. OAuth 동의 화면에서 이메일 주소를 입력하세요.

이름은 정확히 동일해야합니다.


0

확인해야 할 또 다른 사항 :

NuGet을 사용하여 .Net 앱에 GoogleAPI를 설치하면 * .config 파일에 새로운 더미 값 세트가 삽입됩니다.

원래 값이 여전히 제자리에 있는지 확인하고 더미 항목을 제거하십시오.


0

다음 중 어느 것도 내 문제가 아닙니다. 시크릿 창을 열어이 문제를 해결했습니다. 뭔가 분명히 어딘가에 캐시되고 있었으며 인증 클라이언트 설정을 변경하는 데 도움이되지 않았으며 구성 값에 후행 또는 선행 공백이 없었습니다.



0

문서의 버튼에서 만들었 기 때문에 내 것이 작동하지 않았습니다. 다시 프로젝트로 이동하여 다른 OAuthClientID를 만들었습니다. 효과가있었습니다. 예, 오른쪽과 왼쪽의 추가 공간에도주의하십시오.


0

최상의 결과를 얻으려면 다음과 같은 전체 세부 정보가 있는지 확인하십시오.

{"client_id":"282324738-4labcgdsd4nlh34885s2d34tmi.apps.googleusercontent.com","project_id":"abcd23ss-212808","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://www.googleapis.com/oauth2/v3/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"23452-dfgdfgcdfgfd","redirect_uris":["http://localhost:6900/auth/google/callback"],"javascript_origins":["http://localhost:6900"]}

이 데이터는 https://console.developers.google.com/apis/credentials/oauthclient/ 에서 항상 JSON으로 다운로드 할 수 있습니다.


0

Meteor JS에 있다면 appId 대신 clientId 를 사용해야합니다 .

facebook은 appId와 google clientId를 사용하기 때문입니다.

ServiceConfiguration.configurations.upsert({
    service: "google"
}, {
    $set: {
        clientId: process.env.OAUTH_GOOGLE_APP_ID,
        loginStyle: "popup",
        secret: process.env.OAUTH_GOOGLE_SECRET
    }
});

나는 그것을 깨닫기 위해 몇 시간을 보냈다.


0

시행 착오를 찾아야했던 것이 많기 때문에이 글을 전에 본 적이 있었으면 좋겠다. 이것으로 많은 것이 잘못 될 수 있습니다. 내가 가진 또 다른 문제가 있습니다.

승인 된 자바 스크립트 출처 또는 승인 된 리디렉션 URI를 지정하는 경우 www가 있거나없는 도메인을 포함해야합니다. 따라서 https://google.com https://www.google.com

또한 Application 로고를 업로드했습니다. 그 때문에 동의 화면에 검토가 필요했습니다. 응용 프로그램 로고를 업로드하지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.