Apple Migrasi Masuk ke @capgo/social-login
Ikhtisar
Section titled “Ikhtisar”Panduan ini menguraikan transisi dari plugin @capacitor-community/apple-sign-in lama ke paket @capgo/capacitor-social-login modern. Plugin baru ini menyediakan antarmuka terpadu untuk beberapa penyedia autentikasi sosial dengan dukungan TypeScript yang ditingkatkan dan pemeliharaan aktif.
Instalasi
Section titled “Instalasi”-
Hapus paket lama:
Terminal window npm uninstall @capacitor-community/apple-sign-in -
Instal paket baru:
Terminal window npm install @capgo/capacitor-social-loginnpx cap sync
Perubahan Kode
Section titled “Perubahan Kode”Impor Perubahan
Section titled “Impor Perubahan”import { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';Inisialisasi
Section titled “Inisialisasi”Perubahan Kunci: Plugin baru memerlukan langkah inisialisasi yang tidak diperlukan sebelumnya.
// No initialization needed in old package// For iOS: Basic configurationawait SocialLogin.initialize({ apple: {} // Basic iOS configuration});
// For Android: Additional configuration requiredawait SocialLogin.initialize({ apple: { clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL }});Catatan Penting: Untuk iOS, Anda menyediakan konfigurasi dasar, sedangkan Android memerlukan detail tambahan termasuk ID Layanan dan URL panggilan balik backend untuk autentikasi OAuth berbasis web.
Proses login disederhanakan dari beberapa parameter menjadi API yang lebih bersih:
const result = await SignInWithApple.authorize({ clientId: 'com.your.app', redirectURI: 'https://your-app.com/callback', scopes: 'email name', state: '12345', nonce: 'nonce'});
const result = await SocialLogin.login({ provider: 'apple', options: { // Optional: Add scopes if needed scopes: ['email', 'name'], nonce: 'nonce' }});Plugin baru ini menggunakan login() dengan provider: 'apple' dan cakupan opsional daripada meneruskan nilai konfigurasi individual seperti clientId dan redirectURI.
Perubahan Jenis Respons
Section titled “Perubahan Jenis Respons”Hasilnya sekarang mencakup objek accessToken dengan detail masa berlaku dan bagian profile terstruktur, menggantikan format respons yang lebih datar dari paket asli:
// Old response typeinterface AppleSignInResponse { response: { user: string; email: string | null; givenName: string | null; familyName: string | null; identityToken: string | null; authorizationCode: string | null; };}
// New response typeinterface SocialLoginResponse { provider: 'apple'; result: { accessToken: { token: string; expiresIn?: number; refreshToken?: string; } | null; idToken: string | null; profile: { user: string; email: string | null; givenName: string | null; familyName: string | null; }; };}Kemampuan Baru
Section titled “Kemampuan Baru”Plugin yang diperbarui memperkenalkan fungsionalitas yang tidak tersedia di pendahulunya:
Memeriksa Status Masuk
// Not available in old packageconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});Fungsi Keluar
// Not available in old packageawait SocialLogin.logout({ provider: 'apple'});Metode ini menyediakan isLoggedIn() untuk memverifikasi status autentikasi dan fungsionalitas logout().
Perubahan Khusus Platform
Section titled “Perubahan Khusus Platform”iOS Penyiapan
Section titled “iOS Penyiapan”iOS mempertahankan prosedur pengaturan yang sudah dikenal melalui kemampuan Xcode:
- Penyiapan iOS sebagian besar tetap sama. Anda masih perlu:
- Aktifkan kemampuan “Masuk dengan Apple” di Xcode
- Konfigurasikan aplikasi Anda di Portal Pengembang Apple
- Tidak diperlukan perubahan kode tambahan untuk iOS
Android Penyiapan
Section titled “Android Penyiapan”Android kini menerima dukungan asli melalui autentikasi OAuth berbasis web:
Plugin baru ini langsung menyediakan dukungan Android, namun memerlukan pengaturan tambahan:
- Buat ID Layanan di Portal Pengembang Apple
- Konfigurasikan titik akhir autentikasi web
- Siapkan aplikasi Android Anda untuk menangani aliran OAuth
- Konfigurasi layanan backend diperlukan
Untuk petunjuk penyiapan Android selengkapnya, lihat Android Panduan Penyiapan.
Keuntungan Utama
Section titled “Keuntungan Utama”Paket yang dimodernisasi menyediakan:
- API Terpadu di beberapa penyedia sosial (Google, Facebook, Apple)
- Pengetikan TypeScript yang ditingkatkan dengan definisi tipe yang lebih baik
- Pemeliharaan komunitas aktif dibandingkan dengan versi yang tidak digunakan lagi
- Dukungan Android bawaan melalui autentikasi berbasis web
- Manajemen status login persisten
- Penanganan kesalahan yang lebih baik dengan jenis kesalahan yang konsisten
Perubahan yang Mengganggu1. Inisialisasi eksplisit kini diperlukan - tidak ada konfigurasi default
Section titled “Perubahan yang Mengganggu1. Inisialisasi eksplisit kini diperlukan - tidak ada konfigurasi default”- Struktur objek respons telah berubah - format hasil bertingkat
- implementasi Android memerlukan layanan backend untuk OAuth
- Penanganan penyegaran token berbeda - manajemen token yang ditingkatkan
- Penanganan kesalahan dan jenis kesalahan telah berubah - kesalahan yang lebih detail
Untuk petunjuk pengaturan lebih detail, lihat dokumentasi resmi.