invalid_client ใน google oauth2


91

ฉันพยายามสร้างหน้าเว็บสำหรับอัปโหลดวิดีโอ youtube ดังนั้นฉันจึงพยายามรับรหัสไคลเอนต์จากคอนโซล google api และในคอนโซล 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 = ออฟไลน์

มันให้ผลลัพธ์ของ invalid_client แม้ว่าฉันจะลองเล่นบนสนามเด็กเล่น oauth2 แต่ก็เกิดความล้มเหลวเหมือนกัน

มีใครรู้บ้างว่าเกิดอะไรขึ้น?


8
ฉันพบว่าบางครั้งรหัสไคลเอ็นต์ oauth2 ไม่ทำงาน ฉันไม่รู้ว่าทำไม แต่เมื่อฉันเปิดบัญชีใหม่และสร้างรหัสลูกค้าอีกครั้งมันก็ใช้ได้
Bob

3
Bob พูดถูกการสร้างรหัสไคลเอ็นต์ช่วยแก้ปัญหานี้ได้
Gabo Esquivel

11
ตรวจสอบให้แน่ใจว่าเมื่อคัดลอก / วางรหัสไคลเอ็นต์คุณไม่ได้ใส่ช่องว่างต่อท้าย นั่นเป็นเคล็ดลับสำหรับฉัน ...
andig

1
สำหรับฉันฉันสร้างความลับของลูกค้าขึ้นมาใหม่และใช้มันได้ผล ดูเหมือนว่า API ยังไม่เสถียร
Muhammad Talal

คำตอบ:


114

ตั้ง / เปลี่ยนชื่อผลิตภัณฑ์ของคุณฉันประสบปัญหานี้จนกระทั่งฉันสร้างชื่อผลิตภัณฑ์เหมือนกับชื่อโครงการ

สามารถตั้งชื่อผลิตภัณฑ์ได้ในส่วนหน้าจอคำยินยอมของ Google Developers Console สำหรับโครงการของคุณ ดูภายใต้ APIs & auth ในการนำทางด้านซ้ายและเลือกหน้าจอ Consent คุณต้องตั้งที่อยู่อีเมลของคุณในช่องด้านบนชื่อผลิตภัณฑ์ด้วย


4
ขอขอบคุณ!! ฉันได้รับข้อผิดพลาด "" Error: invalid_client ไม่พบไคลเอ็นต์ OAuth "เสียเวลาไปหลายชั่วโมงในวันนี้ แต่อัปเดตชื่อผลิตภัณฑ์ในขณะนี้และเดี๋ยวก่อนขอให้แก้ไขปัญหาข้อผิดพลาดนั้นทำให้เข้าใจผิดมาก
IanB

2
ชื่อสินค้าคืออะไร?
Hubert OG

4
ในหน้าจอคำยินยอม คุณต้องกรอกข้อมูลในฟิลด์ "ชื่อผลิตภัณฑ์"
Foo L

2
สิ่งนี้ได้ผล เพื่อให้กระชับ: ตั้งค่าทั้งฟิลด์"ชื่อผลิตภัณฑ์" และ "ที่อยู่อีเมล"
b_archer

2
ขอบคุณ! บันทึกวันของฉัน! และฉันต้องบอกว่าจากผู้ให้บริการโซเชียลทั้งหมด Google มีเอกสารที่แย่กว่าและ UI ที่แย่ที่สุด มันท่วมท้นและสับสนไปพร้อมกับการนำทางที่ไม่ดีของพวกเขา ฉันเกือบจะลืมวิธีไปที่หน้าการกำหนดค่าโครงการฮ่า ๆ
tintinboss

69

หลังจากคัดลอกค่าจาก UI เว็บของ Google ฉันมีพื้นที่ว่างสำหรับ:

  • client_id
  • secret

และที่จุดเริ่มต้นและตอนท้ายสำหรับทั้งคู่


2
ปัญหานี้ยังคงมีอยู่: P
Abhinay

1
ไม่น่าเชื่อแม้ว่าจะคลิกปุ่ม "คัดลอก" ในคอนโซล API ... คุณคิดว่าพื้นที่สำหรับนักพัฒนาของ Google จะมีช่องว่างที่ละเอียดอ่อน!
Reisclef

ไม่น่าเชื่อเช่นกันที่นี่ ลบช่องว่างเหล่านั้นทั้งสองด้านของสตริง จากนั้นหากทำตามสิ่งที่ได้กล่าวมาทั้งหมดแล้วและยังไม่มีอะไรทำงานให้ลบแอพ / โปรเจ็กต์และสร้างใหม่อีกครั้งเพราะอาจมีปัญหาในการแคช
eigenfield

1
เย้ประเด็นยังอยู่ !!! อึศักดิ์สิทธิ์ ฉันเว้นช่องว่างสีขาวหนึ่งช่องและไม่เห็นจนกว่าจะตรวจสอบอีกครั้ง ขอบคุณ.
LukasS

1
ยี้! ฉันเห็นช่องว่างด้านท้ายและนำออก แต่ไม่ได้ตรวจสอบช่องว่างในตอนต้น
sulabh

41

ตัดพื้นที่สีขาวชั้นนำและต่อท้ายจากทั้งและclient_id client_secretปุ่มคัดลอกของ Google ไม่ได้ทำเพื่อคุณ

ใส่คำอธิบายภาพที่นี่

ตั้งค่าช่องที่อยู่อีเมลและชื่อผลิตภัณฑ์สำหรับหน้าจอคำยินยอม OAuth

ใส่คำอธิบายภาพที่นี่


3
คุณไม่ควรเปิดเผยความลับของลูกค้าด้วยคำตอบเช่นนั้น
Fernando

1
@ Fernando มันเป็นบัญชีที่ทิ้งไป
Shaun Luttin

วุ้ย. มีฉันกังวลที่นั่นฌอน: D
Fernando

3
คุณมาที่หน้าจอนี้ได้อย่างไร?
Anthony Kong

2
"ทิ้งบัญชี" - ไม่ใช่สำหรับ Google ซึ่งติดตามคุณและรวมบัญชีทั้งหมดที่คุณเคยใช้เป็น "บัญชีที่เกี่ยวข้อง" และเมื่อ Google สั่งห้ามบัญชีใดบัญชีหนึ่งระบบจะบล็อกทั้งกลุ่ม เพียงแค่ค้นหาสำหรับ "บัญชีนักพัฒนาซอฟต์แวร์ Google ยกเลิก" ในReddit
Alexander Farber

16

การตั้งค่าที่อยู่อีเมลและชื่อผลิตภัณฑ์ในหน้าจอคำยินยอมของคอนโซลนักพัฒนาซอฟต์แวร์ของ Google แก้ไขข้อผิดพลาด "ข้อผิดพลาด: invalid_client ไม่พบไคลเอ็นต์ OAuth" สำหรับฉัน.


9

ฉันมี. apps.googleusercontent.com สองครั้งใน ID ของฉัน

เป็นปัญหาในการคัดลอกและวาง "รหัสของคุณที่นี่" .apps.googleusercontent.com


5
ของฉันเป็นพื้นที่ว่างที่เหลืออยู่ที่ปลายทั้งสองด้าน: /
Christian

ขอบคุณคริส มันช่วยฉัน
Kiran Pawar

7

ในหัวข้อนี้ฉันพบคำตอบของฉัน

  1. ฉันไปที่คอนโซลของ Google
  2. สร้างโปรเจ็กต์ใหม่ทำการรีเฟรชเพราะในกรณีของฉันหลังจากสร้างเพจไม่ได้โหลดซ้ำ
  3. เลือกโครงการใหม่
  4. สร้างรหัสลูกค้า
  5. ใช้สำหรับสิ่งที่คุณต้องการ

ขอบคุณครับ: D


7

invalid_client ยังสามารถหมายความว่ารหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ของคุณไม่ถูกต้องเมื่อคุณสร้างอ็อบเจ็กต์ Oauth2


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

หรือชื่อสั้น ๆ อาจใช้งานได้

ดูคำตอบด้านล่าง คำตอบ stackoverflow

หรือชื่อผลิตภัณฑ์เหมือนกับชื่อโครงการที่ตอบไปแล้ว

ในบางครั้งอาจมีพื้นที่เพิ่มเติมในไฟล์

ตรวจสอบบรรทัดนี้สองครั้งเพื่อให้คุณถูกเปลี่ยนเส้นทางไปยัง url ที่ถูกต้อง


1

ฉันแก้ปัญหาด้วยการตัดแต่ง:

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

0

ตรวจสอบชื่อโครงการของคุณบนคอนโซล Google APIs คุณเลือกโครงการอื่นที่คุณสร้างขึ้น ฉันเป็นข้อผิดพลาดเดียวกัน ความผิดพลาดของฉันคือการเลือกโครงการที่แตกต่าง


0

ที่ข้อมูลรับรองยอมรับคำขอจากผู้อ้างอิง HTTP เหล่านี้ (เว็บไซต์) (ไม่บังคับ) ใช้เครื่องหมายดอกจันเป็นสัญลักษณ์แทน หากคุณเว้นว่างไว้คำขอจะได้รับการยอมรับจากผู้อ้างอิง อย่าลืมเพิ่มผู้อ้างอิงก่อนใช้คีย์นี้ในการผลิต เพิ่ม (ดาวดอทสตาร์). มันทำงานได้ดีสำหรับฉัน


0

ฉันมีค่าในส่วนข้อมูลลับไคลเอ็นต์ของ URL โดยไม่ได้ตั้งใจ แต่ข้อมูลประจำตัวของ Google ไม่ต้องการรหัสลับไคลเอ็นต์สำหรับรหัสไคลเอ็นต์ Android OAuth 2 เพียงแค่ปล่อยให้ค่าว่างใน URL ก็เป็นเคล็ดลับสำหรับฉัน


0

ขั้นตอนที่ใช้ได้ผลสำหรับฉัน:

  1. ลบข้อมูลรับรองที่ใช้ไม่ได้สำหรับคุณ
  2. สร้างข้อมูลรับรองใหม่กับ NAME
  3. กรอก NAME เดียวกันในหน้าจอคำยินยอม OAuth ของคุณ
  4. กรอกที่อยู่อีเมลในหน้าจอคำยินยอม OAuth

ชื่อควรจะเหมือนกันทุกประการ


0

สิ่งที่ต้องตรวจสอบอีกอย่าง:

เมื่อคุณติดตั้ง GoogleAPI ลงในแอป. Net ด้วย NuGet ระบบจะฉีดค่าดัมมี่ชุดใหม่ในไฟล์ * .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"]}

ข้อมูลนี้สามารถดาวน์โหลดเป็น JSON ได้เสมอจากhttps://console.developers.google.com/apis/credentials/oauthclient/


0

หากคุณอยู่ใน Meteor JS คุณต้องใช้clientIdแทนappId :

เนื่องจาก 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

ฉันหวังว่าจะได้เห็นโพสต์นี้มาก่อนเพราะมีหลายสิ่งหลายอย่างที่ฉันต้องค้นหาจากการลองผิดลองถูก สิ่งนี้ผิดพลาดได้มากมาย นี่คือปัญหาอื่นที่ฉันพบ:

ในกรณีที่คุณระบุจุดเริ่มต้นของ JavaScript ที่ได้รับอนุญาตหรือ URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตโปรดตรวจสอบว่าได้รวมโดเมนของคุณที่มีและไม่มี www ดังนั้นhttps://google.comและ https://www.google.com

นอกจากนี้ฉันยังอัปโหลดโลโก้แอปพลิเคชัน ด้วยเหตุนี้หน้าจอคำยินยอมจึงต้องมีการตรวจสอบ ... ซึ่งใช้เวลาตลอดไป อย่าอัปโหลดโลโก้แอปพลิเคชันหรืออดทนให้มาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.