Google Login pada Android
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bagian berjudul “Pendahuluan”Dalam panduan ini, Anda akan belajar cara mengatur Login Google dengan Capgo Social Login untuk Android. Saya asumsikan Anda telah membaca panduan pengaturan umum. Pengaturan umum.
Menggunakan login Google di Android
Judul Bagian: “Menggunakan Login Google di Android”Pada 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 screenshot)
-
Klik pada
create credentials
-
Pilih
OAuth client ID
-
Pilih jenis
AndroidJenis aplikasi
-
Buka Android Studio
-
Di bagian bawah navigator, cari bagian
Gradle Scripts
-
Cari
build.gradleuntuk fileapp
-
Salinlah
android.defaultConfig.applicationId. Ini akan menjadipackage namedi konsol Google
-
Sekarang, buka terminal. Pastikan Anda berada di
androidfolder aplikasi Anda dan jalankan./gradlew signInReport
- Geser ke atas perintah ini. Anda harus melihat hal berikut. Salinlah
SHA1.
- Sekarang, kembali ke konsol Google. Masukkan
applicationIdsebagaiPackage Namedan SHA1 Anda di bidang sertifikat dan klikcreate
-
-
Buatlah klien web (ini diperlukan untuk Android)
-
Pergi ke halaman
Create credentialsdi Google Console -
Setel jenis aplikasi menjadi
Web
-
Klik
Create
-
Salin ID klien, Anda akan menggunakan ini sebagai
webClientIddi JS/TS code
-
-
Pengaturan
MainActivity-
Silakan buka aplikasi Anda di Android Studio. Anda dapat menjalankannya
cap open android -
Cari
MainActivity.java-
Buka
appFolder
-
Cari
java
-
Cari aplikasi Anda dan klik pada itu
MainActivity.javaFile MainActivity.java di struktur paket
-
-
. Silakan tambahkan kode berikut __CAPGO_KEEP_0__
MainActivity.javacodeimport 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
-
-
Gunakan Login Google di aplikasi Anda
-
Pertama, import
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
Panggil initialize. 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
As kamu bisa melihat,
pixel 8mendukungPlay Storelayanan -
Klik
next
-
context: Halaman/area: Pembuat Capgo / produk halaman native cloud build. Peran: Label UI singkat atau item navigasi. Kunci pesan `native_build_builder_credit_next` (Kredit Pembuat Bangun Native).
Google Play. Pastikan bahwa gambar OS berjenis IT HARUSGoogle Play
-
Pemilihan gambar sistem menampilkan gambar jenis Google Play
-
Konfirmasi perangkat Anda. Anda dapat memberi nama emulator Anda sesuai keinginan
-
Masuk ke
Device Managerdan boot simulator Anda
-
Setelah simulator boot, masuk ke pengaturannya
-
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:
Pengelola Kredensial, SHA-1, dan Firebase
dan Masuk dengan Google), bukan versi legacyandroidx.credentials __CAPGO_KEEP_0__. Error Logcat seperti GoogleSignInClient API. Logcat errors such as GetCredentialCustomException: [28444] Developer console is not set up correctly datang dari stack itu.
Filter Logcat dengan GoogleProvider atau CapgoSocialLogin Bagaimana cara membandingkan mereka dengan Cloud Console Google? webClientId Bagaimana cara membandingkan mereka dengan Cloud Console Google?
Persyaratan Pengaturan Cloud Google
Persyaratan Pengaturan Cloud GoogleKamu membutuhkan dua jenis ID klien OAuth 2.0 di proyek Cloud Google yang sama:
| Jenis klien | Digunakan untuk | Dimana itu pergi |
|---|---|---|
| Aplikasi web | Server / ID token audiens | webClientId in SocialLogin.initialize() |
| Android, satu per kunci tanda tangan | Mengakui bahwa APK Anda diperbolehkan untuk mengakses Google | Hanya tersedia di 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. ID 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. - Untuk varian rilis.
- Dari APK atau AAB yang Anda instal secara nyata.
Google Android OAuth harus sesuai dengan nama paket aplikasi Android OAuth, termasuk apapun suffixnya. applicationId Jika layar persetujuan OAuth dalam mode Testing, tambahkan setiap akun Google yang Anda gunakan untuk tes di bawah Pengguna > Pengguna Uji. android/app/build.gradle Penerbitan aplikasi ke Produksi tidak diperlukan untuk .debug dan
Otorisasi Digital Asset Link ( email ) tidak diperlukan untuk Sign in dengan Google melalui Pengelola Kredensial. profile Pengubahan Cloud Google dapat memakan waktu beberapa jam untuk menyebar.assetlinks.jsonError 28444: Pengaturan konsol pengembang tidak benar
Bagian berjudul “Error 28444: Pengaturan konsol pengembang tidak benar”
Masalah ini biasanya berarti Google menolak kombinasi sertifikat penandatanganan APK, nama paket, dan
Thein webClientIdPeriksa daftar 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 > Credentials, buka klien OAuth Android Anda dan verifikasi nama paket dan SHA-1 yang tepat.
- 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 Play App Signing.
- Pastikan klien Web dan Android berada di proyek Google Cloud yang sama.
- Jika layar persetujuan berada di mode Testing, konfirmasi bahwa akun Google adalah pengguna uji.
- Tunggu dan ulangi setelah perubahan konsol.
USER_CANCELLED Tunggu dan ulangi setelah memilih akun pada build debug yang tidak terkonfigurasi dengan benar. Masalahnya mungkin karena 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 lakukan tes lagi:
adb install android/app/release/app-release.apkMembaca hasil login
Judul Bagian “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 itu idToken dan gunakan ID klien Web sebagai webClientId di initialize.
Jika Anda tidak bisa mendapatkan sertifikat SHA-1 pengembang, coba keystore kustom. Komentar masalah ini menggambarkan cara menambahkan keystore ke proyek Anda.
Lanjutkan dari Google Login di Android
Judul Bagian: Teruskan dari Google Login pada AndroidJika Anda menggunakan Google Login pada Android untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-social-login untuk kemampuan native di Menggunakan @capgo/capacitor-social-login, @capgo/capacitor-social-login untuk detail implementasi di @capgo/capacitor-social-login, @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, dan @capgo/capacitor-native-biometric untuk detail implementasi di @capgo/capacitor-native-biometric Autorisasi Dua Faktor untuk detail implementasi di Autorisasi Dua Faktor.