Apple login di Android
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Login Apple di Android agak hacky. Apple tidak punya dukungan resmi untuk Sign in with Apple di Android, jadi solusinya agak hacky.
Android saat ini memakai Chrome tabs untuk menampilkan website OAuth2. Pendekatan ini punya tantangan:
- Konfigurasi sulit
- Membutuhkan backend
Memahami alur di Android.
Bagian berjudul “Memahami alur di Android.”Saya akan pakai 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)
Setelah memahami tantangan dan alurnya, mari mulai konfigurasinya.
Membuat Service ID
Bagian berjudul “Membuat Service ID”-
Login into the Portal Apple Developer.
-
Klik pada
Identifiers.
Anda akan melihat tampilan seperti ini:
- Pastikan field ini berisi
App IDs - Pastikan Anda dapat menemukan App ID Anda.
- Pastikan field ini berisi
-
Pastikan bahwa
Sign in with Applecapability sudah aktif untuk aplikasi Anda- Klik pada aplikasi Anda
- Pastikan bahwa
Sign in with Applecapability sudah aktif
- Jika belum aktif, silakan aktifkan.
- Klik pada aplikasi Anda
-
Kembali ke semua
All Identifiers
-
Klik pada
App Idsdan bukaServices IDs
-
Buat identifier baru
-
Click on the plus button
-
Pilih
Servcice IDsdan klikContinue
-
Masukkan deskripsi dan identifier lalu klik
Continuie.
-
Silakan verifikasi detailnya dan klik
Register
-
Klik pada service yang baru dibuat
-
Aktifkan opsi
Sign in with Appleopsi
-
Konfigurasikan
Sign In with Apple
-
Pastikan bahwa
Primary App IDdisetel ke App ID yang dikonfigurasi di langkah sebelumnya
-
Tambahkan domain tempat Anda akan menghosting backend.
-
Konfirmasi data dan klik
Done
-
Klik pada
Continue
-
Klik pada
Save
-
Membuat kunci
Bagian berjudul “Membuat key”-
Kembali ke semua
All Identifiers
-
Klik pada
Keys
-
Click on the plus icon
-
Beri nama key Anda
-
Pilih
Sign in with Appledan klikConfigure
-
Pilih App ID utama, lalu tekan
Save
-
Klik pada
Continue
-
Klik pada
Register
-
Salin key ID dan download key-nya.
-
Cari key yang sudah di-download dan simpan di folder backend.
Cara mendapatkan Team ID
Bagian berjudul “Cara mendapatkan Team ID”Untuk menggunakan Login with Apple di Android, Anda perlu mendapatkan Team ID. Ini akan digunakan di backend.
-
Buka situs web ini dan scroll ke bawah
-
Temukan
Team ID
Konfigurasi redirect aplikasi
Bagian berjudul “Konfigurasi redirect aplikasi”Seperti yang terlihat pada diagram, backend melakukan langkah yang disebut Redirect back to the app. Ini memerlukan perubahan manual pada aplikasi Anda.
- Ubah
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>
-
- Ubah
MainActivity-
Silakan buka
MainActivity
-
Tambahkan code 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
Bagian berjudul “Konfigurasi backend”Backend diperlukan untuk Android, namun konfigurasi backend juga akan berdampak pada iOS. Contoh backend telah disediakan di sini
Contoh ini menyediakan hal berikut:
- Database JSON sederhana
- Cara untuk meminta JWT dari server Apple
- Verifikasi JWT sederhana
Berdasarkan semua yang telah saya jelaskan di tutorial ini, berikut adalah cara env bagian tersebut:
ANDROID_SERVICE_ID= Service IDIOS_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
Bagian berjudul “Using the plugin”The usage of the login function tidak berubah, sama seperti di iOS. Silakan cek bagian tersebut untuk info lebih lanjut. NAMUN, initialize method sedikit berubah.
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})Membuat aplikasi
Bagian berjudul “Membuat aplikasi”-
Jika Anda belum memiliki App ID, klik tombol plus
-
Pilih
App IDsdan klik continue
-
Klik pada tipe
Appdan klikContinue
-
Masukkan deskripsi dan app ID
-
Aktifkan
Sign with Applecapability
-
Klik
Continue
-
Konfirmasi detail dan klik
Register
Lanjutkan dengan Apple login di Android
Bagian berjudul “Lanjutkan dengan Apple login di Android”Jika Anda menggunakan Apple login di Android untuk merencanakan alur autentikasi dan akun, hubungkan dengan Menggunakan @capgo/capacitor-social-login untuk kapabilitas 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, @capgo/capacitor-native-biometric untuk detail implementasi di @capgo/capacitor-native-biometric, dan Autentikasi dua faktor untuk detail implementasi di autentikasi dua faktor.