Google Login pada Android
Salin prompt pengaturan AI dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bab berjudul “Pendahuluan”Dalam panduan ini, Anda akan belajar bagaimana mengatur Login Google dengan Capgo Login Sosial untuk Android. Saya asumsikan bahwa Anda telah membaca panduan pengaturan umum Pengaturan Umum.
Menggunakan login Google di Android
Bab berjudul “Menggunakan login Google di Android”Ini bagian ini, Anda akan belajar cara mengatur login Google di Android.
-
Buat ID klien Android.
-
Klik di bar pencarian
-
Cari
credentialsdan klik padaAPIs and Servicessalah satu (nomor 2 pada tangkapan layar)
-
Klik pada
create credentials
-
Pilih
OAuth client ID
-
Pilih jenis
AndroidPilih jenis aplikasi
-
Buka Android Studio
-
Di bagian bawah navigator, cari bagian Skrip Gradle
Gradle Scripts
-
untuk file build.gradle (Modul: aplikasi) di bagian Skrip Gradle
build.gradleSalinapp
-
Salin
android.defaultConfig.applicationId. Ini akan menjadipackage namedi konsol Google
-
Sekarang, buka terminal. Pastikan Anda berada di folder aplikasi Anda dan jalankan
androidTerminal menampilkan perintah gradlew signInReport./gradlew signInReport
- Output terminal menampilkan fingerprint sertifikat SHA1
SHA1.
- sebagai
applicationIddan SHA1 Anda di bidang sertifikat dan klikPackage NameFormasi klien Android dengan nama paket dan bidang SHA1 diisicreate
-
-
Membuat klien web (ini diperlukan untuk Android)
-
Pergi ke halaman
Create credentialsdi Google Console -
Setel jenis aplikasi ke
Web
-
Klik
Create
-
Salin ID klien, Anda akan menggunakan ini sebagai
webClientIddi kode JS/TS code
-
-
Mengubah kode
MainActivity-
Silakan buka aplikasi Anda di Android Studio. Anda dapat menjalankannya
cap open android -
Cari
MainActivity.java-
Buka folder
appfolder
-
Cari
java
-
Cari file MainActivity.java Anda dan klik pada itu
MainActivity.javaUbah
-
-
Salin ke clipboard
MainActivity.java. Please add the following codeimport ee.forgr.capacitor.social.login.GoogleProvider;import ee.forgr.capacitor.social.login.SocialLoginPlugin;import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;import com.getcapacitor.PluginHandle;import com.getcapacitor.Plugin;import android.content.Intent;import android.util.Log;import com.getcapacitor.BridgeActivity;// ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Google Activity Result", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);}}// This function will never be called, leave it empty@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
Simpan file
-
-
Pakai Login Google di aplikasi Anda
-
Pertama, import
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
Panggil inisialisasi. Ini harus dipanggil hanya sekali.
// onMounted is Vue specific// webClientId is the client ID you got in the web client creation step not the android client ID.onMounted(() => {SocialLogin.initialize({google: {webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',}})}) -
Panggil
SocialLogin.login. Create a button and run the following code on click.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
Konfigurasi emulator untuk tes
-
Masuk ke
Device managerdan klik tombol plus
-
Buat perangkat virtual
-
Pilih perangkat apa pun dengan
Play Storeikon
Seperti yang Anda lihat, perangkat ini mendukung
pixel 8layananPlay StoreKlik -
Tombol Next di wizard pembuatan perangkat
next
-
HARUS
Google Play. berjenis Pemilihan gambar sistem menampilkan gambar jenis Google PlayGoogle Play
-
Tombol Next di layar pemilihan gambar sistem
-
Konfirmasi perangkat Anda. Anda dapat menamai emulator Anda sesuai keinginan Anda
-
Masuk ke
Device Managerdan boot simulator Anda
-
Setelah simulator boot, masuk ke pengaturan perangkatnya
-
Masuk ke
Google Play
- Klik
Updatedan tunggu sekitar 60 detik
-
-
Tes aplikasi Anda
Jika Anda telah melakukan semuanya dengan benar, Anda seharusnya melihat alur login Google berjalan dengan baik:
Bagian berjudul “Pengaturan”
Jika Anda mengalami masalah, pertama-tama bandingkan konfigurasi aplikasi Anda dengan nilai Google Cloud Console. Gagal login Google pada Android biasanya disebabkan oleh nama paket, SHA-1, atau ID klien yang tidak sesuai.
Pengelola Kredensial, SHA-1, dan FirebaseBagian berjudul “Pengelola Kredensial, SHA-1, dan Firebase”androidx.credentials Pada Android, plugin ini menggunakan Pengelola Kredensial Google ( GoogleSignInClient API. Logcat errors such as GetCredentialCustomException: [28444] Developer console is not set up correctly __CAPGO_KEEP_0__
Filter Logcat dengan GoogleProvider atau CapgoSocialLogin atau untuk membandingkannya dengan Google Cloud Console. webClientId Pengaturan Cloud Google yang Diperlukan
Judul bagian yang berjudul “Pengaturan Cloud Google yang Diperlukan”
Anda memerlukan dua jenis ID klien OAuth 2.0 yang sama di proyek Google Cloud:Jenis klien
| Digunakan untuk | Dimana itu pergi | Aplikasi web |
|---|---|---|
| Audien token ID / Server | atau | webClientId di SocialLogin.initialize() |
| Android, satu per kunci tanda tangan | Mengakui bahwa APK Anda diperbolehkan untuk mengakses Google | Hanya dapat diakses melalui Google Cloud Console. Jangan melewatkan ID ini ke webClientId |
Salah satu kesalahan umum adalah menggunakan ID klien Android sebagai webClientId. Pengelola Kredensial memerlukan ID klien Web di sana. Klien Android hanya memerlukan nama paket yang benar dan SHA-1 yang terdaftar di console.
Buatlah satu klien OAuth Android untuk setiap sertifikat yang menandatangani build yang Anda uji:
- Dari
./gradlew signingReportuntuk varian debug. - Dari APK atau AAB yang Anda instal secara nyata.
- Dari Play App Signing: dari Play Console > Keamanan Aplikasi > Sertifikat kunci tanda tangan aplikasi. Ini diperlukan untuk build Play Store bahkan jika SHA-1 kunci unggah Anda sudah terdaftar.
The applicationId di android/app/build.gradle harus tepat sama dengan nama paket Android OAuth client, termasuk apapun .debug sufiks.
Jika layar persetujuan OAuth dalam mode Testing, tambahkan setiap akun Google yang Anda uji di bawah Pengguna > Pengguna Uji. Pengumuman aplikasi ke Produksi tidak diperlukan untuk email dan profile skop. Aset Digital (assetlinks.json) tidak diperlukan untuk Masuk dengan Google melalui Pengelola Kredensial.
Pengubahan Cloud Google dapat memakan waktu beberapa jam untuk menyebar.
Error 28444: Pengaturan konsol pengembang tidak benar
Bab berjudul “Error 28444: Pengaturan konsol pengembang tidak benar”Ini hampir selalu berarti Google menolak kombinasi sertifikat penandatanganan APK yang terpasang, nama paket, dan webClientId. Jalani daftar checklist ini:
- Konfirmasi
webClientIdadalah ID klien aplikasi Web dan diakhiri dengan.apps.googleusercontent.com. - Jalankan aplikasi, reproduksi kegagalan, dan baca Logcat untuk
GoogleProvider,signingSha1=, danpackage=. - Dalam Google Cloud Console > Kredensial, buka klien OAuth Android Anda dan verifikasi nama paket yang tepat dan SHA-1.
- Jika Anda menguji versi rilis, daftarkan SHA-1 dari versi tersebut, bukan hanya keystore debug.
- Jika aplikasi Anda didistribusikan melalui Play Store, daftarkan juga SHA-1 tanda tangan aplikasi Play.
- Pastikan klien Web dan Android berada di proyek Google Cloud yang sama.
- Jika layar persetujuan berada di mode Pengujian, konfirmasi bahwa akun Google adalah pengguna uji.
- Tunggu dan ulangi setelah perubahan di console.
USER_CANCELLED Setelah memilih akun pada build debug yang tidak terkonfigurasi, masih bisa terjadi kesalahan SHA-1 atau ID klien. Perbaiki terlebih dahulu pengaturan konsol di atas.
Ekstrak SHA-1 dari build yang Anda instal.
Bagian: Ekstrak SHA-1 dari build yang Anda instal.Build debug atau lokal:
cd android && ./gradlew signingReportAPK rilis yang ditandatangani:
keytool -printcert -jarfile android/app/release/app-release.apkTambahkan SHA-1 tersebut ke klien OAuth Android dengan nama paket yang sesuai, instal kembali APK yang sama yang ditandatangani, dan tes lagi:
adb install android/app/release/app-release.apkMembaca hasil login
Bab berjudul “Membaca hasil login”Token terletak di bawah result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Untuk Firebase Auth, buat kredensial dengan cara tersebut idToken dan gunakan ID klien Web sebagai webClientId di initialize.
Jika Anda tidak bisa mendapatkan sertifikat SHA-1 pengembang, coba keystore khusus. Komentar masalah ini menggambarkan cara menambahkan keystore ke proyek Anda.
Teruskan dari Google Login pada Android
Bab berjudul “Teruskan dari Google Login pada Android”Jika Anda menggunakan Google Login pada Android untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-login-sosial untuk kemampuan native di Menggunakan @capgo/capacitor-login-sosial @capgo/capacitor-login-sosial untuk detail implementasi di @capgo/capacitor-login-sosial @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey @capgo/capacitor-biometrik-native untuk detail implementasi di @capgo/capacitor-biometrik-native, dan Autentikasi dua faktor untuk detail implementasi di Autentikasi Dua Faktor.