Lebih cepat ke konten

Login Apple di Android

GitHub

Penggunaan login Apple di Android adalah tidak biasa. Apple tidak memiliki dukungan resmi untuk Sign in with Apple di Android, jadi solusinya sedikit kreatif.

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

  • Tantangan konfigurasi yang sulit
  • Diperlukan backend

Biarkan saya menggunakan diagram untuk menjelaskan alur pada Android:

Sekarang Anda sudah menyadari tantangan dan alur, mari kita mulai mengonfigurasi.

  1. Masuk ke dalam Portal Pengembang Apple.

  2. Klik pada Identifiers.

    Bab Identifikasi Portal Pengembang Apple

    Anda harus 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 ini diaktifkan untuk aplikasi Anda

    1. Klik pada aplikasi Anda Mengilih aplikasi Anda dari daftar
    2. Pastikan bahwa Sign in with Apple kemampuan ini diaktifkan Centang kotak kemampuan Sign in dengan Apple
    3. Jika tidak diaktifkan, aktifkan saja.
  4. Kembali ke semua All Identifiers

    Semua Identifikasi navigasi tombol
  5. Klik pada App Ids dan pergi ke Services IDs

    Navigasi ke Bagian IDs Layanan
  6. Buat identifikasi baru

    1. Klik pada tombol plus

      Tambahkan ID Layanan Baru tombol
    2. Pilih Servcice IDs dan klik Continue

      Menggunakan ID Layanan Pilihan
    3. Masukkan deskripsi dan identifikasi dan klik Continuie.

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

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

      Menggunakan ID layanan baru
    6. Mengaktifkan Sign in with Apple option

      Mengaktifkan Sign in dengan Apple untuk ID layanan
    7. Konfigurasi Sign In with Apple

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

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

      Bidang domain dan URL kembali
    10. Mengonfirmasi data dan klik Done

      Mengonfirmasi konfigurasi domain dan URL kembali
    11. Klik pada Continue

      Button Lanjutkan untuk konfigurasi layanan
    12. Klik pada Save

      Button Simpan untuk konfigurasi layanan
  1. Kembali ke semua All Identifiers

    Tombol Navigasi Identifikasi Semua
  2. Klik pada Keys

    Bab 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 ID Aplikasi utama, dan tekan Save

    Mengatur 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 unduh kunci.

    Tampilan tombol ID kunci dan 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 IDID ini akan digunakan di backend.

  1. Pergi ke website ini dan gulir ke bawah

  2. Temukan Team ID

    Konfigurasi lokasi ID Tim di akun pengembang

Sebagaimana yang Anda lihat dalam diagram, backend melakukan langkah yang disebut Redirect back to the appLangkah ini memerlukan perubahan manual pada aplikasi Anda.

  1. Ubah AndroidManifest.xml
    1. Terbuka file ini, saya akan menggunakan AndroidStudio

      File AndroidManifest.xml di Android Studio
    2. Temukan MainActivity dan tambahkan filter Intent berikut

      Filter Intent 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. Ubahlah MainActivity
    1. Silakan buka file MainActivity

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

      Code to add to MainActivity for handling 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);
      }

Backend diperlukan untuk Android, tetapi mengonfigurasi backend juga akan mempengaruhi IOS. Contoh backend disediakan di sini

Contoh ini menyediakan hal-hal berikut:

  • Basis data JSON sederhana
  • Apa yang dapat meminta JWT dari server Apple
  • Verifikasi JWT yang sederhana

Given everything that I said in this tutorial, here is how the env Bagian ini akan terlihat seperti ini:

  • ANDROID_SERVICE_ID = ID Aplikasi
  • 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 Fungsi tidak berubah, sama seperti IOS. Periksa bagian tersebut untuk informasi lebih lanjut. , namun, the initialize Perubahan metode sedikit berbeda.

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

    Pemilihan Tipe ID Aplikasi
  3. Klik pada jenis App dan klik Continue

    Mengatur jenis aplikasi
  4. Masukkan deskripsi dan ID aplikasi

    Masukkan deskripsi aplikasi dan ID bundle
  5. Mengaktifkan 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 registrasi aplikasi

Teruskan dari login Apple di Android

Judul: Teruskan dari login Apple di Android

Jika Anda menggunakan Login Apple di 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-login Sosial untuk detail implementasi di @capgo/capacitor-social-login, @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, @capgo/capacitor-native-biometrik untuk detail implementasi di @capgo/capacitor-native-biometric, dan Autentikasi dua faktor untuk detail implementasi di Autentikasi dua faktor.