Lebih cepat ke konten

Login Apple di Android

GitHub

Login Apple di Android adalah tidak elegan. Apple tidak memiliki dukungan resmi untuk Sign in with Apple di Android, sehingga solusi ini sedikit tidak elegan.

Android saat ini menggunakan tab Chrome untuk menampilkan situs web OAuth2. Pendekatan ini memiliki tantangan:

  • Konfigurasi yang sulit
  • Diperlukan backend

Biarkan saya menggunakan diagram untuk menjelaskan alur pada Android:

Sekarang bahwa Anda menyadari tantangan dan aliran, mari kita mulai konfigurasi.

  1. Masuk ke portal Portal Pengembang Apple.

  2. Klik pada Identifiers.

    Bagian Identifikasi Portal Pengembang Apple

    Anda seharusnya melihat layar yang terlihat seperti ini:

    Layar Identifikasi Portal Pengembang Apple
    1. Pastikan bahwa bidang ini mengatakan App IDs
    2. Pastikan Anda dapat menemukan ID Aplikasi Anda.
  3. Pastikan bahwa Sign in with Apple kemampuan diaktifkan untuk aplikasi Anda

    1. Klik pada aplikasi Anda Mengilih aplikasi Anda dari daftar
    2. Pastikan bahwa Sign in with Apple kemampuan diaktifkan Kotak centang kemampuan Sign in dengan Apple diaktifkan
    3. Jika tidak diaktifkan, aktifkanlah.
  4. Kembali ke semua All Identifiers

    Tombol navigasi semua Identifikasi
  5. Klik pada App Ids dan pergi ke Services IDs

    Navigasi ke bagian ID layanan
  6. Buat identifier baru

    1. Klik pada tombol plus

      Tombol tambah ID layanan baru
    2. Pilih Servcice IDs dan klik Continue

      Pilihan ID layanan
    3. Masukkan deskripsi dan ID dan klik Continuie.

      Masukkan detail ID layanan
    4. Silakan verifikasi detail dan klik Register

      Mengonfirmasi registrasi ID layanan
    5. Klik pada layanan baru yang telah dibuat

      Mengilih ID layanan baru yang telah dibuat
    6. Mengaktifkan opsi Sign in with Apple Mengaktifkan Sign in dengan Apple untuk ID layanan

      Konfigurasi opsi
    7. Konfigurasi tombol untuk Sign in dengan Apple Sign In with Apple

      Konfigurasi tombol untuk Sign in dengan Apple
    8. Pastikan bahwa Primary App ID diatur ke ID Aplikasi yang telah dikonfigurasi pada langkah sebelumnya

      Dropdown Pengaturan ID Aplikasi Utama
    9. Tambahkan domain yang akan Anda gunakan untuk menghosting backend Anda.

      Pengaturan domain dan URL kembali
    10. Konfirmasi data dan klik Done

      Konfirmasi domain dan pengaturan URL kembali
    11. Klik pada Continue

      Tombol lanjutkan untuk pengaturan layanan
    12. Klik pada Save

      Tombol simpan untuk pengaturan layanan
  1. Kembali ke semua All Identifiers

    Tombol navigasi semua Identifikasi
  2. Klik pada Keys

    Bagian Kunci di Portal Pengembang Apple
  3. Klik pada ikon plus

    Tombol Tambah Kunci Baru
  4. Berikan nama kunci

    Mengisi bidang nama kunci
  5. Pilih Sign in with Apple dan klik Configure

    Mengaktifkan dan mengonfigurasi Sign in dengan Apple untuk kunci
  6. Pilih App ID utama, dan tekan Save

    Pilih ID Aplikasi Utama untuk kunci
  7. Klik pada Continue

    Tombol Lanjutkan untuk pengaturan kunci
  8. Klik pada Register

    Tombol Daftar untuk pembuatan kunci
  9. Salin ID kunci dan download kunci.

    Tampilan ID kunci dan tombol download
  10. Temukan kunci yang diunduh dan simpan di folder backend.

    File kunci yang diunduh

Untuk menggunakan Login with Apple di Android, Anda perlu mendapatkan Team ID. Akan digunakan di backend.

  1. Kunjungi website ini dan gulirkan ke bawah

  2. Cari lokasi ID Tim di akun pengembang Team ID

    Mengatur pengalihan aplikasi

. Ini memerlukan perubahan manual pada aplikasi Anda. Redirect back to the appUbah

  1. Buka file ini, saya akan menggunakan AndroidManifest.xml
    1. File AndroidManifest.xml di Android Studio AndroidStudio

      Cari lokasi
    2. dan tambahkan filter Intent berikut ini MainActivity __CAPGO_KEEP_0__

      Intent filter code untuk menambahkan di MainActivity
      <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="capgo-demo-app" android:host="path" />
      </intent-filter>
  2. Ubah MainActivity
    1. Silakan buka MainActivity

      File MainActivity.java di Android Studio
    2. Tambahkan kode berikut code:

      Code untuk menambahkan ke MainActivity untuk menghandle deep links
      @Override
      protected void onNewIntent(Intent intent) {
      String action = intent.getAction();
      Uri data = intent.getData();
      if (Intent.ACTION_VIEW.equals(action) && data != null) {
      PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");
      if (pluginHandle == null) {
      Log.i("Apple Login Intent", "SocialLogin login handle is null");
      return;
      }
      Plugin plugin = pluginHandle.getInstance();
      if (!(plugin instanceof SocialLoginPlugin)) {
      Log.i("Apple Login Intent", "SocialLogin plugin instance is not SocialLoginPlugin");
      return;
      }
      ((SocialLoginPlugin) plugin).handleAppleLoginIntent(intent);
      return;
      }
      super.onNewIntent(intent);
      }

Untuk Android, backend diperlukan, tetapi mengonfigurasi backend juga akan mempengaruhi IOS. Contoh backend disediakan Contoh ini menyediakan hal berikut:

Contoh ini menyediakan hal berikut: __CAPGO_KEEP_0__

  • Database JSON sederhana
  • Cara meminta JWT dari server Apple
  • Verifikasi JWT sederhana

Dengan segala yang saya katakan dalam tutorial ini, berikut adalah cara env bagaimana bagian ini akan terlihat:

  • ANDROID_SERVICE_ID = ID Layanan
  • IOS_SERVICE_ID = ID Aplikasi
env: {
PRIVATE_KEY_FILE: "AuthKey_U93M8LBQK3.p8",
KEY_ID: "U93M8LBQK3",
TEAM_ID: "UVTJ336J2D",
ANDROID_SERVICE_ID: "ee.forgr.io.ionic.starter.service2",
IOS_SERVICE_ID: "me.wcaleniewolny.test.ionic.vue",
PORT: 3000,
REDIRECT_URI: "https://xyz.wcaleniewolny.me/login/callback",
BASE_REDIRECT_URL: "capgo-demo-app://path"
}

Penggunaan fungsi tidak berubah, sama seperti IOS. Silakan lihat bagian tersebut untuk informasi lebih lanjut. login TETAPI , metodeberubah sedikit. initialize Salin ke clipboard

await SocialLogin.initialize({
apple: {
clientId: 'ee.forgr.io.ionic.starter.service2',
redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback'
}
})
  1. Jika Anda belum memiliki ID Aplikasi, klik tombol plus

    Tombol plus untuk menambahkan identifier baru
  2. Pilih App IDs dan klik lanjutkan

    Mengatur Tipe ID Aplikasi
  3. Klik pada tipe App dan klik Continue

    Mengatur Tipe Aplikasi
  4. Masukkan deskripsi dan ID aplikasi

    Menginput deskripsi aplikasi dan ID bundle
  5. Aktifkan Sign with Apple kemampuan

    Mengaktifkan Kemampuan Sign in dengan Apple
  6. Klik Continue

    Tombol Lanjutkan untuk registrasi aplikasi
  7. Konfirmasi detail dan klik Register

    Konfirmasi detail pendaftaran aplikasi

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