Login Google di Android
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Introduction
Section titled “Introduction”In this guide, you will learn how to setup Google Login with Capgo Social Login for Android. I assume that you have already read the Petunjuk Pengaturan Umum.
Panduan pengaturan umum
Menggunakan login Google di AndroidIni bagian ini, Anda akan belajar cara mengatur login Google di Android.
-
Buat ID klien Android.
-
Klik di bar pencarian
-
Cari
credentialsand click on theAPIs and Servicessalah satu (nomor 2 pada screenshot)
-
Klik pada
create credentials
-
Pilih
OAuth client ID
-
Pilih jenis
AndroidPilih jenis aplikasi
-
Buka Android Studio
-
Pada bagian bawah navigator, cari bagian Skrip Gradle
Gradle Scripts
-
untuk file
build.gradleuntuk modul tersebutapp
-
context
android.defaultConfig.applicationId. Ini akan menjadipackage namedi konsol Google
-
Buka terminal sekarang. Pastikan Anda berada di
androidTerminal menampilkan perintah gradlew signInReport./gradlew signInReport
- Scroll ke atas perintah ini. Anda harus melihat hal berikut. Salin
SHA1.
- Sekarang, kembali ke Konsole Google. Masukkan
applicationIdsebagaiPackage NameFormasi klien Android dengan nama paket dan 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
webClientIdin your JS/TS code
-
-
Ubahlah
MainActivity-
Buka aplikasi Anda di Android Studio. Anda dapat menjalankan
cap open android -
Cari
MainActivity.java-
Buka folder
appFolder
-
Cari
java
-
Temukan Akun Anda
MainActivity.javaKlik pada tombol tersebut
-
-
Modify
MainActivity.javaTolong tambahkan berikut: 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'; -
Memanggil 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
-
Pergi ke
Device managerdan klik tombol plus
-
Buat perangkat virtual
-
Pilih perangkat apa pun dengan
Play Storeikon
Seperti yang Anda lihat,
pixel 8mendukungPlay Storelayanan -
Klik
next
-
Pastikan bahwa gambar OS memiliki jenis
Google Play. IT IT HARUSGoogle Play
-
Klik berikutnya
-
Konfirmasi perangkat Anda. Anda dapat menamai emulator Anda sesuai keinginan Anda
-
Masuk ke
Device Managerdan boot simulator Anda
-
Setelah simulator booting, 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:
Troubleshooting
Bagian Titled “Pengaturan Masalah”Jika Anda mengalami masalah, pertama-tama bandingkan konfigurasi aplikasi Anda dengan nilai Google Cloud Console. Gagal login Google Sign-In pada Android biasanya disebabkan oleh nama paket, SHA-1, atau ID klien yang tidak sesuai.
Pengelola Kredensial, SHA-1, dan Firebase
Pengelolaan Kredensial, SHA-1, dan FirebasePada Android, plugin ini menggunakan Pengelola Kredensial Google (androidx.credentials dan Masuk dengan Google), bukan versi legacy GoogleSignInClient API. Eror Logcat seperti GetCredentialCustomException: [28444] Developer console is not set up correctly Logcat kesalahan seperti
Filter Logcat dengan GoogleProvider atau CapgoSocialLogin setelah gagal login. Plugin ini merekam nama paket Anda, tanda tangan SHA-1, dan alamat IP yang disembunyikan webClientId sehingga Anda dapat membandingkannya dengan Google Cloud Console.
Diperlukan Pengaturan Google Cloud
Bagian berjudul “Diperlukan Pengaturan Google Cloud”Anda memerlukan dua jenis ID OAuth 2.0 dalam proyek Google Cloud yang sama:
| Jenis Klien | Digunakan untuk | Dimana itu pergi |
|---|---|---|
| Aplikasi Web | Pelayanan / ID Token Audience | webClientId di SocialLogin.initialize() |
| Android, satu per kunci tanda tangan | Mengakui bahwa APK Anda diperbolehkan untuk mengakses Google | Google Cloud Console hanya. Jangan melewati 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 bangun yang Anda uji:
- Dari
./gradlew signingReportuntuk varian debug. - Rilis: dari APK atau AAB yang Anda instal sebenarnya.
- Play App Signing: from Play Console > App integrity > App signing key certificate. This is required for Play Store builds even if your upload key SHA-1 is already registered.
The applicationId di android/app/build.gradle harus tepat sama dengan nama paket Android OAuth, termasuk apapun .debug sufiks.
Jika layar persetujuan OAuth berada dalam mode Pengujian, tambahkan setiap akun Google yang Anda uji di bawah Pengguna > Pengujian. Pengumuman aplikasi ke Produksi tidak diperlukan untuk email dan profile skop. Sumber Daya Digital (assetlinks.json) tidak diperlukan untuk Sign in dengan Google melalui Manajer Kredensial.
Pengubahan Cloud Google dapat memakan waktu hingga beberapa jam untuk menyebar.
Error 28444: Pengaturan konsol pengembang tidak benar
Bagian berjudul “Error 28444: Pengaturan konsol pengembang tidak benar”Ini hampir selalu berarti Google menolak kombinasi sertifikat penandatanganan APK yang terpasang, nama paket, dan webClientId. Lakukan 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 pastikan nama paket dan SHA-1 yang tepat.
- Jika Anda menguji rilis, daftarkan SHA-1 dari rilis tersebut, bukan hanya keystore debug.
- Jika aplikasi Anda didistribusikan melalui Play Store, daftarkan juga SHA-1 Play App Signing.
- Pastikan klien Web dan Android berada di proyek Google Cloud yang sama.
- Jika layar persetujuan berada di Testing, konfirmasi bahwa akun Google adalah pengguna uji.
- Tunggu dan ulangi setelah perubahan di konsol.
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.
Judul 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 lakukan tes lagi:
adb install android/app/release/app-release.apkMelihat hasil login
Judul bagian “Melihat 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 itu idToken Untuk Firebase Auth, buat kredensial dengan itu webClientId in initialize.
Jika Anda tidak dapat mendapatkan sertifikat SHA-1 pengembangan, coba keystore khusus. Komentar Masalah Mengapa menambahkan keystore ke proyek Anda.
menjelaskan cara menambahkan keystore ke proyek Anda.
Bagian berjudul “Teruskan dari Google Login di Android”Jika Anda menggunakan Google Login pada Android untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-social-login untuk kemampuan asli dalam Menggunakan @capgo/capacitor-social-login Menggunakan @capgo/capacitor-social-login untuk detail implementasi dalam @capgo/capacitor-social-login Menggunakan @capgo/capacitor-passkey untuk detail implementasi dalam @capgo/capacitor-passkey Menggunakan @capgo/capacitor-native-biometric untuk detail implementasi dalam @capgo/capacitor-native-biometric, dan Autentikasi dua faktor Untuk detail implementasi di Autentikasi Dua Faktor.