Lebih lanjut ke konten

Google Login pada Android

GitHub

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

Menggunakan login Google pada Android

Judul Bagian: “Menggunakan Login Google di Android”

Ini bagian di mana Anda akan belajar cara mengatur login Google di Android.

  1. Buat ID klien Android.

    1. Klik di bar pencarian

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

      Hasil pencarian menampilkan opsi kredential dengan API dan Services yang dihimbau
    3. Klik pada create credentials

      Tombol kunci kredensial di Google Console
    4. Pilih OAuth client ID

      Option ID OAuth di menu pembuatan kredensial
    5. Pilih Android Jenis aplikasi

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

    7. Pada bagian bawah navigator, cari bagian Gradle Scripts

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

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

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

    Terminal menampilkan perintah gradlew signInReport
    1. Arahkan ke atas perintah ini. Anda harus melihat hal berikut. Salinlah SHA1.
    Hasil terminal menampilkan fingerprint sertifikat SHA1
    1. Sekarang, kembali ke konsol Google. Masukkan applicationId sebagai Package Name dan SHA1 Anda di bidang sertifikat dan klik create
    Buatlah klien Android dengan mengisi nama paket dan SHA1
  2. Buatlah klien web (ini diperlukan untuk Android)

    1. Pergi ke halaman Create credentials di Google Console

    2. Atur jenis aplikasi menjadi Web

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

      Buatlah 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. Ubahlah MainActivity

    1. Silakan buka aplikasi Anda di Android Studio. Anda dapat menjalankannya cap open android

    2. Cari MainActivity.java

      1. Buka app Folder

        Folder aplikasi di navigator proyek Android Studio
      2. Cari java

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

        Ubah
    3. . Silakan tambahkan kode berikut __CAPGO_KEEP_0__ MainActivity.javacode

      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. Create a button and run the following code on click.

      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 dihiglightkan
    2. Buat perangkat virtual

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

      Pemilihan perangkat menampilkan perangkat yang mendukung Toko Play

      seperti yang Anda lihat, pixel 8 mendukung Play Store layanan

    4. Klik next

      Tombol Lanjutkan di wizard pembuatan perangkat
    5. Konteks: Halaman/area: Capgo Builder / produk halaman native cloud build. Peran: Label UI singkat atau item navigasi. Pesan kunci `native_build_builder_credit_next` (Kredit Pembuat Native Build). Google Play. Pastikan bahwa gambar OS berjenis IT HARUS Google Play

      berjenis
    6. Pemilihan gambar sistem menampilkan gambar jenis Google Play

      Button Selanjutnya di layar pilihan gambar sistem
    7. Konfirmasi perangkat Anda. Anda dapat menamai emulator Anda sesuai keinginan

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

      Layanan Pengelola Perangkat dengan simulator virtual terdaftar dan tombol Main
    9. Setelah simulator boot, masuk ke pengaturannya

      Emulator Android menampilkan aplikasi Pengaturan
    10. Masuk ke Google Play

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

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

    Demo alur login Google pada Android menampilkan proses pendaftaran dan autentikasi sukses

Pengelola Kredensial, SHA-1, dan Firebase

dan Masuk dengan Google), bukan versi legacyandroidx.credentials __CAPGO_KEEP_0__. Error Logcat seperti GoogleSignInClient API GetCredentialCustomException: [28444] Developer console is not set up correctly datang dari stack itu.

Filter Logcat dengan GoogleProvider atau CapgoSocialLogin Bagaimana cara membandingkannya dengan Cloudflare? webClientId Bagaimana cara membandingkannya dengan Capacitor?

Bagaimana cara membandingkannya dengan GitHub?

Bagaimana cara membandingkannya dengan Capgo?

Bagaimana cara membandingkannya dengan code?

Bagaimana cara membandingkannya dengan API?Bagaimana cara membandingkannya dengan SDK?Bagaimana cara membandingkannya dengan CLI?
Bagaimana cara membandingkannya dengan npm?Server / ID token audiencewebClientId dalam SocialLogin.initialize()
Android, satu per kunci tanda tanganMengakui bahwa APK Anda diperbolehkan untuk mengakses GoogleGoogle Cloud Console hanya. Jangan melewatkan ID ini ke webClientId

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.

Buat satu klien OAuth Android untuk setiap sertifikat yang menandatangani bangun Anda yang Anda uji:

  • Dari ./gradlew signingReport untuk varian debug.
  • Untuk varian rilis.
  • Dari APK atau AAB yang Anda instal secara nyata.

Perlu applicationId di android/app/build.gradle harus tepat sama dengan nama paket Android OAuth client, termasuk apapun .debug singkatan.

Jika layar persetujuan OAuth 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 Pengelola Kredensial.

Pengubahan Cloud Google dapat memakan waktu beberapa jam untuk menyebar.

Error 28444: Pengaturan konsol pengembang tidak benar webClientIdPeriksa daftar ini:

  1. Konfirmasi webClientId adalah ID klien aplikasi Web dan diakhiri dengan .apps.googleusercontent.com.
  2. Jalankan aplikasi, reproduksi kegagalan, dan baca Logcat untuk GoogleProvider, signingSha1=, dan package=.
  3. Dalam Google Cloud Console > Credentials, buka klien OAuth Android Anda dan verifikasi nama paket dan SHA-1 yang tepat.
  4. Jika Anda menguji versi rilis, daftarkan SHA-1 dari versi tersebut, bukan hanya keystore debug.
  5. Jika aplikasi Anda didistribusikan melalui Play Store, daftarkan juga SHA-1 Play App Signing.
  6. Pastikan klien Web dan Android berada di proyek Google Cloud yang sama.
  7. Jika layar persetujuan berada di Testing, konfirmasi bahwa akun Google adalah pengguna uji.
  8. Tunggu dan ulangi setelah perubahan konsol.

USER_CANCELLED Tunggu dan ulangi setelah memilih akun pada build debug yang salah konfigurasi. Masalahnya mungkin karena kesalahan SHA-1 atau ID klien. Perbaiki terlebih dahulu pengaturan konsol di atas.

Ekstrak SHA-1 dari build yang Anda instal.

Ekstrak SHA-1 dari build yang Anda instal

Build debug atau lokal:

Tampilan jendela terminal
cd android && ./gradlew signingReport

APK rilis yang ditandatangani:

Tampilan jendela terminal
keytool -printcert -jarfile android/app/release/app-release.apk

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

Tampilan jendela terminal
adb install android/app/release/app-release.apk

Token terletak di bawah result:

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

Untuk Firebase Auth, buat kredensial dengan menggunakan idToken dan gunakan ID klien Web sebagai webClientId di initialize.

Jika Anda tidak bisa mendapatkan sertifikat SHA-1 pengembang, coba keystore khusus. Komentar isu ini menggambarkan cara menambahkan keystore ke proyek Anda.

Teruskan dari Google Login pada Android

Judul Bagian: Teruskan dari Google Login pada Android

Jika 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 Autentikasi Dua Faktor untuk detail implementasi di Autentikasi Dua Faktor.