Lompat ke konten

Google Login pada Android

GitHub

Dalam panduan ini, Anda akan belajar cara mengatur Login Google dengan Capgo Login Sosial untuk Android. Saya asumsikan bahwa Anda telah membaca panduan pengaturan umum sebelumnya. Pengaturan Umum.

Dalam bagian ini, Anda akan belajar cara mengatur login Google di Android.

  1. Buat ID klien Android.

    1. Klik pada bar pencarian

      Bar pencarian Console Google
    2. Cari credentials dan klik pada APIs and Services satu (nomor 2 pada screenshot)

      Hasil pencarian menampilkan opsi kredential dengan APIs dan Services yang ditebalkan
    3. Klik pada tombol create credentials

      Tombol Create credentials di Console Google
    4. Pilih OAuth client ID

      Opsi ID klien OAuth pada menu pembuatan kredential
    5. Pilih jenis Android Jenis aplikasi

      Pilih jenis aplikasi dengan opsi Android yang ditonjolkan
    6. Buka Android Studio

    7. Pada bagian bawah navigator, cari Gradle Scripts

      Bagian Skrip Gradle di navigator proyek Android Studio
    8. Cari build.gradle untuk modul app

      berkas build.gradle (Modul: aplikasi) di bagian Skrip Gradle
    9. Salin android.defaultConfig.applicationId Ini akan menjadi package name anda di konsol Google

      Berkas Build.gradle yang menampilkan konfigurasi applicationId
    10. Sekarang, buka terminal. Pastikan Anda berada di folder aplikasi Anda dan jalankan android Terminal menampilkan perintah gradlew signInReport ./gradlew signInReport

    Geser ke atas perintah ini. Anda harus melihat hal berikut. Salinlah
    1. Output terminal menampilkan fingerprint sertifikat SHA1 SHA1.
    Sekarang, kembali ke Console Google. Masukkan
    1. sebagai applicationId dan SHA1 Anda di bidang sertifikat dan klik Package Name Bentuk klien Android dengan nama paket dan SHA1 diisi create
    Buatlah klien web (ini diperlukan untuk Android)
  2. Pergi ke

    1. Console Google Create credentials halaman di Google Console

    2. Atur jenis aplikasi menjadi Web

      Pilihan jenis aplikasi dengan opsi Web yang ditonjolkan
    3. Klik Create

      Form pembuatan klien Web dengan tombol Buat di bagian bawah
    4. Salin ID klien, Anda akan menggunakan ini sebagai webClientId di JS/TS code

      Detail ID klien menampilkan ID klien Web untuk disalin
  3. Ubah MainActivity

    1. Silakan buka aplikasi di Android Studio. Anda bisa menjalankan cap open android

    2. Cari MainActivity.java

      1. Buka app folder

        Folder di proyek navigator Android Studio
      2. Cari java

        Folder Java di struktur proyek Android Studio
      3. Cari folder Anda MainActivity.java dan klik pada folder tersebut

        File MainActivity.java di struktur paket
    3. Ubah MainActivity.java. Tambahkan code

      import 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 {
      @Override
      public 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
      @Override
      public void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}
      }
    4. Simpan file

  4. Gunakan Login Google di aplikasi Anda

    1. Pertama, import SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. 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',
      }
      })
      })
    3. Panggil SocialLogin.login. Buatlah sebuah tombol dan jalankan code ketika diklik.

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. Konfigurasi emulator untuk tes

    1. Masuk ke Device manager dan klik tombol plus

      Pengelola Perangkat di Android Studio dengan tombol plus dihiglight
    2. Buat perangkat virtual

      Tombol Buat Perangkat Virtual di Konfigurasi Perangkat Virtual
    3. Pilih perangkat apa saja dengan Play Store ikon

      Pemilihan perangkat yang menampilkan dukungan Play Store

      Seperti yang Anda lihat, pixel 8 mendukung layanan Play Store layanan

    4. Klik next

      Tombol Next di sihir wizard pembuatan perangkat
    5. Pastikan gambar OS berjenis Google Play. IT MUST berjenis Google Play

      Pemilihan gambar sistem yang menampilkan gambar Google Play
    6. Klik next

      Tombol Next di layar pemilihan gambar sistem
    7. Konfirmasi perangkat Anda. Anda dapat menamai emulator Anda sesuai keinginan Anda

      Layar verifikasi konfigurasi perangkat dengan tombol Finish
    8. Masuk ke Device Manager dan boot up simulator Anda

      Pengelola Perangkat dengan perangkat virtual terdaftar dan tombol main
    9. Setelah simulator boot up, masuk ke pengaturannya

      Emulator Android menampilkan aplikasi pengaturan
    10. Masuk ke Google Play

    Layar Pengaturan dengan pilihan Google Play
    1. Klik Update dan tunggu sekitar 60 detik
    Layar Perbarui Google Play dengan tombol Perbarui
  6. Tes aplikasi Anda

    Jika Anda melakukan semuanya dengan benar, Anda seharusnya melihat alur masuk Google berjalan dengan baik:

    Demo alur login Google pada Android menampilkan proses sign-in dan autentikasi sukses

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 kesalahan nama paket, SHA-1, atau ID klien.

Pengelola Kredensial, SHA-1, dan Firebase

Bab berjudul “Pengelola Kredensial, SHA-1, dan Firebase”

Pada Android, plugin ini menggunakan Pengelola Kredensial Google (androidx.credentials dan Masuk dengan Google), bukan versi legacy GoogleSignInClient API. Error Logcat seperti GetCredentialCustomException: [28444] Developer console is not set up correctly bisa berasal dari stack tersebut.

Filter Logcat dengan GoogleProvider atau CapgoSocialLogin setelah gagal login. Plugin ini merekam nama paket Anda, tanda tangan SHA-1, dan tanda bintang webClientId sehingga Anda dapat membandingkannya dengan Google Cloud Console.

Pengaturan Cloud Google yang Diperlukan

Judul bagian “Pengaturan Cloud Google yang Diperlukan”

Anda memerlukan dua jenis ID klien OAuth 2.0 yang sama di proyek Google Cloud:

Jenis klienDigunakan untukDimana itu pergi
Aplikasi webAudien token ID / ServerwebClientId di SocialLogin.initialize()
Pada Android, satu per tanda tangan signingMenguji apakah APK Anda diperbolehkan untuk mengakses GoogleHanya Cloud Console Google. Jangan transfer ID ini ke webClientId

Biasanya, kesalahan yang sering dilakukan 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 klien OAuth Android untuk setiap sertifikat yang menandatangani build yang Anda uji:

  • Debug: dari ./gradlew signingReport untuk varian debug.
  • Release: dari APK atau AAB yang Anda instal secara nyata.
  • Play App Signing: dari Console Play > Keamanan Aplikasi > Sertifikat tanda tangan aplikasi. Ini diperlukan untuk build Play Store bahkan jika SHA-1 kunci unggah Anda sudah terdaftar.

Kunci applicationId dalam android/app/build.gradle harus tepat sesuai dengan nama paket klien OAuth Android, termasuk apapun .debug suffix.

Jika layar persetujuan OAuth berada dalam mode Pengujian, tambahkan setiap akun Google yang Anda uji di bawah Pengguna > Pengujian. email Penerbitan aplikasi ke Produksi tidak diperlukan untuk profile danassetlinks.jsonSkop.

Tautan Aset Digital (

) tidak diperlukan untuk Masuk dengan Google melalui Manajer Kredensial.

Pengubahan Cloud Google dapat memakan waktu hingga beberapa jam untuk menyebar.

Error 28444: Konsol pengembang tidak diatur dengan benar webClientIdJudul bagian “Error 28444: Konsol pengembang tidak diatur dengan benar”

  1. Ini biasanya berarti Google menolak kombinasi sertifikat penandatangan APK yang terinstal, nama paket, dan webClientId Kerja melalui daftar checklist ini: .apps.googleusercontent.com.
  2. Jalankan aplikasi, reproduksi kegagalan, dan baca Logcat untuk GoogleProvider, signingSha1=, dan package=.
  3. Dalam Google Cloud Console > Akun Kredensial, buka klien OAuth Android Anda dan verifikasi nama paket yang tepat dan SHA-1.
  4. Jika Anda menguji rilis, daftarkan SHA-1 dari rilis tersebut, bukan hanya keystore debug.
  5. Jika aplikasi Anda didistribusikan melalui Toko Play, daftarkan juga SHA-1 Signing Aplikasi Play.
  6. Pastikan klien Web dan Android berada di proyek Google Cloud yang sama.
  7. Jika layar persetujuan berada di Uji Coba, konfirmasi bahwa akun Google adalah pengguna uji coba.
  8. Tunggu dan ulangi setelah perubahan di konsol.

USER_CANCELLED Setelah memilih akun pada aplikasi debug yang tidak terkonfigurasi dengan benar, masih bisa terjadi kesalahan SHA-1 atau ID klien. Perbaiki pengaturan konsol di atas terlebih dahulu.

Ekstrak SHA-1 dari rilis yang Anda instal

Bagian berjudul “Ambil SHA-1 dari build yang diinstal”

Debug atau build lokal:

Jendela terminal
cd android && ./gradlew signingReport

APK rilis yang ditandatangani:

Jendela terminal
keytool -printcert -jarfile android/app/release/app-release.apk

Tambahkan SHA-1 tersebut ke klien OAuth Android dengan nama paket yang sesuai, reinstall APK yang sama yang ditandatangani, dan tes lagi:

Jendela terminal
adb install android/app/release/app-release.apk

Token-nya terletak di bawah result:

const login = await SocialLogin.login({ provider: 'google' });
const idToken = login.result?.idToken;

Untuk Firebase Auth, buat kunci dengan cara ini 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.

Jika Anda menggunakan Google Login di Android Untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-social-login Untuk kemampuan asli 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, @capgo/capacitor-native-biometric Untuk detail implementasi di @capgo/capacitor-native-biometric, dan Dua faktor autentikasi Untuk detail implementasi di Dua faktor autentikasi.