Login Apple di Android
Login Apple di Android agak rumit. Apple tidak memiliki dukungan resmi untuk Sign in with Apple di Android, jadi solusinya sedikit rumit.
Android saat ini menggunakan tab Chrome untuk menampilkan situs web OAuth2. Pendekatan ini memiliki tantangan:
- Konfigurasi yang sulit
- Backend diperlukan
Memahami alur di Android
Section titled “Memahami alur di Android”Mari saya gunakan diagram untuk menjelaskan alur di Android:
flowchart TD
A("await SocialLogin.login()") -->|Handled in the plugin|B(Generate the login URL)
B --> |Pass the link| C(Open the Chrome browser)
C --> D(Wait for the user to login)
D --> |Apple redirects to your backend|E(Handle the data returned from Apple)
E --> F(Redirect back to the app)
F --> G(Return to JS)
Sekarang setelah Anda mengetahui tantangan dan alurnya, mari kita mulai konfigurasi.
Membuat ID layanan
Section titled “Membuat ID layanan”-
Login ke Portal Developer Apple.
-
Klik pada
Identifiers.
Anda harus melihat layar yang terlihat seperti ini:

- Pastikan field ini mengatakan
App IDs - Pastikan Anda dapat menemukan App ID Anda.
- Pastikan field ini mengatakan
-
Pastikan bahwa kemampuan
Sign in with Applediaktifkan untuk aplikasi Anda- Klik pada aplikasi Anda

- Pastikan bahwa kemampuan
Sign in with Applediaktifkan
- Jika belum diaktifkan, aktifkan.
- Klik pada aplikasi Anda
-
Kembali ke
All Identifiers
-
Klik pada
App Idsdan pergi keServices IDs
-
Buat identifier baru
-
Klik tombol plus

-
Pilih
Servcice IDsdan klikContinue
-
Masukkan deskripsi dan identifier dan klik
Continuie.
-
Silakan verifikasi detailnya dan klik
Register
-
Klik pada layanan yang baru dibuat

-
Aktifkan opsi
Sign in with Apple
-
Konfigurasi
Sign In with Apple
-
Pastikan bahwa
Primary App IDdiatur ke App ID yang dikonfigurasi di langkah sebelumnya
-
Tambahkan domain tempat Anda akan menghosting backend Anda.

-
Konfirmasikan data dan klik
Done
-
Klik pada
Continue
-
Klik pada
Save
-
Membuat key
Section titled “Membuat key”-
Kembali ke
All Identifiers
-
Klik pada
Keys
-
Klik pada ikon plus

-
Beri nama key Anda

-
Pilih
Sign in with Appledan klikConfigure
-
Pilih primary App ID, dan tekan
Save
-
Klik pada
Continue
-
Klik pada
Register
-
Salin ID key dan unduh key.

-
Temukan key yang diunduh dan simpan di folder backend.

Mendapatkan Team ID
Section titled “Mendapatkan Team ID”Untuk menggunakan Login with Apple di Android, Anda perlu mendapatkan Team ID. Ini akan digunakan di backend.
-
Pergi ke situs web ini dan scroll ke bawah
-
Temukan
Team ID
Mengkonfigurasi redirect aplikasi
Section titled “Mengkonfigurasi redirect aplikasi”Seperti yang Anda lihat di diagram, backend melakukan langkah yang disebut Redirect back to the app. Ini memerlukan perubahan manual pada aplikasi Anda.
- Modifikasi
AndroidManifest.xml-
Buka file, saya akan menggunakan
AndroidStudio
-
Temukan
MainActivitydan tambahkan Intent filter berikut
<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>
-
- Modifikasi
MainActivity-
Silakan buka
MainActivity
-
Tambahkan kode berikut:
@Overrideprotected 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);}
-
Konfigurasi backend
Section titled “Konfigurasi backend”Backend diperlukan untuk Android, tetapi mengkonfigurasi backend juga akan berdampak pada IOS. Contoh backend disediakan di sini
Contoh ini menyediakan hal berikut:
- Database JSON sederhana
- Cara untuk meminta JWT dari server Apple
- Verifikasi JWT sederhana
Mengingat semua yang saya katakan dalam tutorial ini, berikut adalah bagaimana bagian env akan terlihat:
ANDROID_SERVICE_ID= ID LayananIOS_SERVICE_ID= App ID
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"}Menggunakan plugin
Section titled “Menggunakan plugin”Penggunaan fungsi login tidak berubah, sama seperti IOS. Silakan lihat bagian itu untuk info lebih lanjut. NAMUN, metode initialize sedikit berubah.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Membuat app
Section titled “Membuat app”-
Jika Anda belum memiliki App ID, klik tombol plus

-
Pilih
App IDsdan klik continue
-
Klik pada jenis
Appdan klikContinue
-
Masukkan deskripsi dan app ID

-
Aktifkan kemampuan
Sign with Apple
-
Klik
Continue
-
Konfirmasikan detail dan klik
Register