You’re probably here because Google Sign-In should have been a quick integration, and instead you’re staring at a credentials screen wondering why one app type gives you a client secret and another doesn’t. That confusion is normal, especially if you’re building with Capacitor, Ionic, Electron, or a mixed web and native stack.
Bagian yang paling banyak panduan lupa adalah hal yang memecahkan implementasi nyata: ID Klien Google spesifik platform, dan jenis aplikasi non-web seringnya tidak get a client secret by design. If you create the wrong credential just to force a secret into the flow, you usually end up with a broken OAuth setup that’s harder to debug than it should be.
Isi Kandungan
- Menghubungkan Aplikasi Anda ke Ecosystem Google
- Koneksi Aplikasi Kamu ke Ecosystem Google
- Membuat dan Menampilkan ID Klien Anda
- Konfigurasi ID Klien yang Spesifik untuk Platform
- Mengamankan Kredensial Google API Anda
- Mengatasi Kesalahan ID Klien yang Umum
Menghubungkan Aplikasi Anda ke Ecosystem Google
Banyak tim mengalami masalah ini pada saat yang sama. Mereka membutuhkan Masuk dengan Googleatau mereka ingin akses yang disetujui pengguna ke sesuatu seperti Drive atau Kalender, dan sebuah API tiba-tiba tidak cukup lagi.
atau mereka ingin akses yang disetujui pengguna ke sesuatu seperti Drive atau Kalender, dan kunci __CAPGO_KEEP_0__ tiba-tiba tidak cukup lagi. aplikasi AndaKredensial yang melakukan itu bukanlah API yang dipanggil. ID Client Google.
If you’re working in a cross-platform codebase, the confusion gets worse fast. You might have a web frontend, an Android shell, an iOS app, and maybe an Electron build for desktop. They may share product branding and backend logic, but they should not all share one OAuth identity.
Pengaturan OAuth yang praktis biasanya menyangkut beberapa pertanyaan implementasi:
- Apa jenis aplikasi yang harus Anda buat
- Apakah Anda memerlukan rahasia klien
- URI atau asal yang harus cocok secara tepat
- Bagaimana menghubungkan aliran mobile dan web tanpa mencampurkan kreditensi
- Mengapa aliran yang berfungsi di browser gagal di dalam wrapper native
Prinsip praktis: Jika aplikasi Anda meminta izin pengguna atau login, mulai berpikir dalam jenis klien OAuth, bukan API kunci.
Perbedaan itu menyelamatkan waktu awal. Ini juga mencegah kesalahan umum pembangunan aliran login mobile di sekitar kreditensi web hanya karena konsol menampilkan lebih banyak bidang. Jika Anda menerapkan ini di aplikasi Capacitor ini, panduan tentang OAuth2 di aplikasi Capacitor adalah teman yang berguna untuk aliran aplikasi.
Apa itu ID Klien Google
A ID Klien OAuth 2.0 Google adalah pengenal publik untuk aplikasi Anda di sistem autentikasi Google. Google menjelaskan bahwa itu adalah nama pengguna unik untuk aplikasi ketika meminta token akses dari titik akhir autentikasi Google, dan menekankan bahwa itu berbeda dari API kunci karena digunakan dalam aliran OAuth untuk memverifikasi identitas aplikasi selama pertukaran token, seperti yang dijelaskan dalam dokumentasi klien OAuth Google Cloud.

Model mental sederhana
Pikirkan bahwa ID Klien Google masalah sebagai aplikasi Anda username publik.
It tells Google, “this request is coming from this registered application.” That matters during sign-in, consent, token exchange, and any flow where your app asks to act on behalf of a user. The client ID is meant to be referenced by both your app and Google’s auth servers.
Apa yang membuat orang kesulitan adalah bahwa kredential ini berada di samping dua konsep lain yang tidak dapat diganti-gantikan.
ID Klien mengidentifikasi aplikasi dalam OAuth.
API key mengidentifikasi sebuah proyek untuk beberapa API panggilan yang tidak melibatkan otorisasi pengguna yang diwakilkan.
Kunci Klien adalah lawan rahasia yang digunakan hanya dalam aliran dan jenis aplikasi yang dapat menjaga rahasia dengan aman.
Banyak integrasi yang rusak dimulai ketika seseorang menganggap hal ini sebagai variasi dari hal yang sama. Mereka bukan.
Dimana ID Klien Google berada dalam prakteknya
If you need Masuk dengan Google atau context, the client ID is the value your frontend uses to initiate the authentication handshake. Google’s documentation also notes that the app must be registered in a dedicated Cloud Console project before the credential can be generated, and that web apps require configured authorized JavaScript origins or redirect URIs with the full scheme and hostname.
That’s why the setup feels stricter than generating a simple key. Google isn’t just enabling access. It’s binding the auth request to a known app identity.
Untuk tim yang membangun aplikasi hybrid, model mental yang paling aman adalah ini:
- Pakai ID klien untuk mengidentifikasi aplikasi
- Pakai layar persetujuan untuk mewakili aplikasi kepada pengguna
- Pakai jenis aplikasi yang benar untuk menentukan apakah rahasia harus ada dalam alur
Jika Anda ingin primer yang lebih luas tentang bagaimana identitas aplikasi dan akses yang ditunjukkannya saling terkait, panduan autentikasi aplikasi ini Cara Membuat dan Menampilkan ID Klien Anda
Cara Membuat dan Melihat ID Klien Anda
The console path has changed enough that developers often think they’re in the wrong place. They usually aren’t. Google currently exposes two navigation routes for these credentials: the newer dan jalur yang lebih lama APIs & Services > Kredensial Paket & Layanan > Kredensial jalan, seperti yang dijelaskan di pengaturan dokumentasi Google.

Mulai di area konsol yang tepat
Buka konsol Google Cloud dan pilih atau buat proyek yang akan mengelola konfigurasi autentikasi. Jangan menyebarkan autentikasi ke proyek acak. Hal ini akan menyebabkan audit dan dukungan menjadi menyakitkan di kemudian hari.
Dari sana, pergi ke salah satu tempat berikut:
- Google Auth Platform > Klien
- APIs & Services > Kredensial
Jika tim Anda melihat label navigasi yang berbeda, itu sudah diharapkan. Google telah memisahkan pengaturan identitas dari permukaan kredensial API yang lain.
Buat kredensial tanpa membatasi diri sendiri
Saat Anda membuat klien OAuth baru, keputusan terbesar adalah jenis aplikasi tipe aplikasiGoogle meminta Anda memilih jenis tertentu seperti Web, Android, iOS, atau Desktop. Pilihan itu tidak hanya estetika. Ini menentukan bagaimana aplikasi diidentifikasi dan apa konfigurasi dukungan yang diperlukan.
Untuk aplikasi web, Anda dapat mengharapkan memasukkan:
- Asal JavaScript yang diotorisasi
- URI pengalihan yang diotorisasi
Nilai-nilai tersebut harus tepat. Untuk kredential web, Google mengharapkan skema dan hostname yang lengkap, seperti https://www.example.com, bukan konsep domain yang longgar.
Untuk platform mobile, bentuknya berbeda. Pendaftaran Android memerlukan identitas dan verifikasi kepemilikan paket, sedangkan iOS menggunakan identifikator platform sendiri. Jika Anda menggabungkan autentikasi Google dengan lapisan autentikasi lainnya, this Capacitor social login setup with Supabase Contoh ini menunjukkan bagaimana komponen-komponen ini seringkali saling melengkapi.
Ini adalah panduan visual yang baik untuk membandingkan antarmuka jika Anda ingin melihatnya saat mengklik.
Dimana Anda bisa menemukannya nanti
Setelah pembuatan, ID klien muncul di daftar kredit projek. Ruang projek yang sama juga di mana tim mengaktifkan API dan melihat bagaimana identitas OAuth terkait dengan layar persetujuan. Nama aplikasi yang terdaftar adalah yang pengguna lihat selama prompt izin, yang merupakan alasan mengapa penting untuk menamai aplikasi dengan akurat.
Google menjaga kredit ini dapat diatur secara berkelanjutan. Anda bisa kembali ke dashboard untuk menyalin ID klien, mengulas pengaturan, dan, jika berlaku, mengelola rahasia klien terkait dengan kredit tersebut.
Layar persetujuan bukanlah dekorasi. Ini adalah bagian dari batasan kepercayaan. Pengguna melihat nama aplikasi Anda di sana, bukan nama projek internal Anda.
Konfigurasi ID Klien Platform-Spesifik
Cara termudah untuk menghancurkan pengaturan login Google adalah dengan asumsi ID klien dapat menutupi setiap platform. Tidak bisa. Untuk aplikasi multi-platform, setiap platform harus mendaftarkan ID klien OAuth 2.0 yang unik, dan pengaturan Android secara khusus memerlukan fingerprint SHA1 untuk memverifikasi kepemilikan, seperti yang disebutkan dalam referensi pengaturan platform ini.
Mengapa satu aplikasi memerlukan beberapa ID Klien
Mungkin produk Anda adalah satu aplikasi bagi pengguna, tetapi itu berarti beberapa klien OAuth bagi Google.
A Aplikasi WebAplikasi iOS Aplikasi desktopAplikasi iOS iOS build, dan sebuah A don’t present the same security properties. They don’t prove identity in the same way, and they don’t all store credentials in a trustworthy environment. Google handles that by giving each platform its own app registration model.
Pemisahan ini merupakan kebiasaan baik dalam hal keamanan. Jika pengaturan kredit suatu platform terganggu atau salah konfigurasi, maka yang lain tidak akan terbuka secara otomatis.
Berikut adalah cara membagi secara praktis:
- Web menggunakan ID klien web dan memeriksa asal dan URI redirect yang ketat.
- Android menggunakan ID klien Android yang terkait dengan identitas paket dan fingerprint SHA1.
- iOS menggunakan ID klien iOS yang terkait dengan identitas aplikasi.
- Desktop atau Electron sering menggunakan pola OAuth yang terinstal atau gaya desktop daripada aliran browser yang didukung rahasia.
ID Klien Google dibandingkan
| Jenis Aplikasi | Identifikasi Utama | Mengapa Klien Rahasia? | Penggunaan Utama |
|---|---|---|---|
| Web | Asal dan URI Redirect JavaScript yang Dijalankan | Biasanya Ya | Aplikasi Browser dan OAuth Web yang Dibantu Backend |
| Andoid | Identitas Paket plus Fingerprint SHA1 | Biasanya Tidak | Pengenalan Tanda Tangan Android |
| iOS | Identitas Paket Aplikasi | Sering tidak | Sign-in iPhone dan iPad asli |
| Desktop | Identitas aplikasi terpasang | Sering tidak | Aplikasi desktop, termasuk aliran asli native Electron |
Paradoks kunci klien untuk mobile dan desktop
Ini adalah bagian yang banyak tutorial salah.
Pengembang mobile dan desktop sering mengharapkan setiap klien OAuth datang dengan baik ID klien dan rahasianya. Kemudian mereka membuat sebuah Mengembangkan Aplikasi Web credential karena itu adalah satu-satunya cara mereka dapat melihat rahasia di konsol. Alur yang terlihat lebih lengkap, sehingga mereka melanjutkan. Kemudian, autentikasi gagal dalam cara yang membingungkan.
According to penjelasan ini tentang kesalahan credential mobile yang tidak sesuai , jenis aplikasi non-web seperti Android, iOS, dan aplikasi yang diinstal sering kali menerima ID klien tetapi tidak ada rahasia klien secara sengaja, karena Google tidak ingin rahasia yang dapat diakses secara rahasia di dalam perangkat lunak sisi klien di mana pengguna dapat mengekstraknya.
Pilihan desain tersebut benar. Aplikasi mobile atau bundle Electron bukanlah tempat penyimpanan rahasia yang aman.
Apa yang berhasil: Fluktuasi OAuth klien publik yang dirancang untuk klien sisi klien.
Apa yang tidak berhasil: Membuat credential web untuk aplikasi mobile hanya untuk memaksa rahasia ke dalam implementasi.
Untuk tim Capacitor , hal ini biasanya muncul dalam salah satu dari dua pola buruk:
- Aplikasi meluncurkan aliran berbasis browser menggunakan sebuah klien web lalu mencoba berperilaku seperti sebuah server rahasia.
- Aplikasi mengirimkan sebuah rahasia klien yang berasal dari code, yang mengalahkan tujuan dari memiliki rahasia.
Approach yang lebih baik adalah menganggap aplikasi mobile dan desktop sebagai klien publik. Dalam OAuth modern, itu biasanya berarti menggunakan aliran yang tidak bergantung pada rahasia yang disembunyikan di dalam klien. Jika backend Anda terlibat, jaga operasi yang mengandung rahasia di backend dan jaga aplikasi native terbatas pada apa yang harus dilakukan oleh klien publik.
Firebase-berbasis Android sign-in memiliki poin penting lainnya yang perlu diperhatikan. ID aplikasi web tipe ID klien is used as the backend server’s OAuth client ID, while the Android app keeps its own platform-specific identity. That split confuses teams because they see both a web credential and a mobile credential in the same project and assume one replaces the other. It doesn’t. They serve different roles.
Jika Anda mengingat satu aturan, gunakan satu ini: Pilih jenis klien yang sesuai dengan tempat code berjalan, bukan bentuk kredensial yang Anda inginkan.
Mengamankan Kredensial Google API Anda
Insiden OAuth paling banyak disebabkan oleh serangan kompleks. Tim melempar kredensial, memperluas pengaturan redirect yang terlalu luas, atau memasukkan rahasia ke tempat yang tidak aman sejak awal.
Pedoman OAuth Google menekankan bahwa ID klien dan rahasia harus dianggap sebagai data pribadi, dan untuk aplikasi web, ID klien diterapkan terhadap URI redirect yang telah didaftarkan sebelumnya. Jika URI redirect tidak sesuai secara ketat, Google menolak permintaan. Pengikat asal ini adalah bagian dari perlindungan terhadap intersepsi token, seperti yang dijelaskan di Pedoman Pendaftaran Klien OAuth.com.

Apa yang harus Anda tutup segera
If you only do a few things right, do these:
- Jangan kirim rahasia klien ke dalam code aplikasi. Paket bundel web, biner mobile, dan paket Electron dapat diperiksa oleh pengguna.
- Daftarkan URI redirect yang tepat. Kurang sudah tidak cukup. Google memvalidasi match yang ketat untuk aliran web.
- Tetapkan asal-usul yang ketat. Jangan mengotorisasi domain yang luas hanya untuk menghindari gesekan setup.
- Jadikan kredit platform terpisah. Jangan biarkan kenyamanan memaksa Android, iOS, dan web menjadi satu kredit.
Satu detail operasional mudah dilupakan. Google memungkinkan tim untuk menghasilkan rahasia baru untuk ID klien yang ada dan menonaktifkan yang lama. Hal ini penting ketika rahasia terbuka atau ketika Anda memperketat proses peluncuran.
Apa yang dilakukan tim yang aman secara nyata.
Tim yang tidak mengalami masalah akan menganggap kredensial OAuth seperti rahasia produksi lainnya.
Mereka menyimpan rahasia klien web di backend, menginjeksinya melalui manajemen lingkungan, dan memantau siapa yang memiliki akses konsol. Jika Anda membersihkan pipa rilis Anda, panduan ini tentang mengelola rahasia di pipa CI/CD pengelolaan rahasia di aliran CI/CD Juga layak diterapkan pada pengaturan autentikasi Anda.
Mereka juga memeriksa metadata, bukan hanya kunci. Layar persetujuan OAuth terkait dengan identitas klien yang dilihat pengguna. Jika nama aplikasi tidak jelas atau menipu, pengguna lebih cenderung tidak percaya atau menyetujui aplikasi yang salah.
Keamanan bukan hanya tentang menyembunyikan rahasia. Ini juga tentang memastikan identitas aplikasi yang tepat, target redirect, dan layar persetujuan selalu sejalan setiap kali.
Memecahkan Masalah Client ID yang Umum
Kebanyakan gagal OAuth Google berasal dari kesalahan pengaturan yang kecil. Teks kesalahan tidak selalu baik, tapi masalah dasar biasanya sederhana sekali setelah Anda tahu di mana harus mencari.
Perbaikan yang Menyelesaikan Kebanyakan Gagal
redirect_uri_mismatch
Aplikasi Anda mengirimkan URI redirect yang tidak tepat sama sekali dengan yang terdaftar untuk klien web. Periksa skema, host, path, dan perbedaan apa pun yang mungkin ada di akhir. Untuk OAuth web, matching yang tepat adalah bagian dari model keamanan.
invalid_client
Biasanya ini berarti aplikasi mengirimkan ID klien yang salah, rahasia yang salah untuk klien tersebut, atau mencampur kredential di antara platform. Contoh yang umum adalah aliran Android atau iOS yang tidak sengaja menggunakan kredential web di tempat yang salah.
invalid_request
Masalah ini luas, tapi di aplikasi lintas platform sering menunjukkan parameter autentikasi yang rusak atau aliran yang tidak sesuai dengan jenis klien. Periksa apakah aplikasi mencoba menyertakan rahasia di tempat yang tidak seharusnya, atau apakah aliran OAuth yang dipilih mengharapkan jenis klien yang berbeda.
Google Sign-In bekerja di web tapi gagal di mobile
Hal pertama yang perlu diperiksa adalah jenis klien. Sumber kesalahan yang paling umum bagi pengembang mobile adalah membuat ID klien aplikasi web hanya untuk mendapatkan rahasia klien, ketika mereka seharusnya menggunakan jenis Android atau iOS yang sering menghilangkan rahasia secara sengaja, seperti yang dijelaskan di Penguraian Kesalahan Klien SecretJika implementasi Anda termasuk pekerjaan siklus token setelah sign-in, panduan revokasi itu juga berguna.
Gagal Sign-in Android Setelah Pembuatan Kredensial
Periksa kembali fingerprint SHA1 yang terpasang pada klien Android. Jika identitas tanda tangan tidak sesuai dengan apa yang diharapkan Google, aplikasi tidak akan membuktikan kepemilikan dengan benar.
Tampilan Konsentasi Tidak Benar
Verifikasi nama aplikasi dan branding yang terpasang pada pengaturan OAuth di konsol. Pengguna mengotorisasi apa yang mereka lihat di sana, sehingga metadata yang salah menciptakan masalah kepercayaan dan kebisingan dukungan.
Urutan Debugging yang Praktis Sederhana: Periksa jenis klien terlebih dahulu, kemudian pengaturan redirect, kemudian identifikasi platform, kemudian apakah rahasia itu termasuk dalam aliran sama sekali.
Jika tim Anda mengirimkan aplikasi Capacitor atau Electron, bug autentikasi jarang tetap isolasi. Mereka biasanya muncul bersamaan dengan tekanan rilis, kebutuhan rollback, dan perbaikan spesifik lingkungan. Capgo membantu tim mengirimkan pembaruan yang sasaran ke aplikasi code dan asset tanpa menunggu ulasan toko, yang membuatnya lebih mudah untuk memperbaiki aliran login, pengolahan panggilan balik, dan masalah autentikasi sisi klien ketika mereka masuk ke produksi.