Lompat ke Konten

Migrasi Sign-In Apple ke @capgo/social-login

GitHub

Panduan ini menjelaskan transisi dari plugin legasi ke plugin modern. @capacitor-community/apple-sign-in Plugin baru menyediakan antarmuka yang terintegrasi untuk penyedia autentikasi sosial yang lebih dari satu dengan dukungan TypeScript yang diperbarui dan perawatan aktif. @capgo/capacitor-social-login Pemasangan

  1. Hapus paket lama:

    Jendela terminal
    npm uninstall @capacitor-community/apple-sign-in
  2. Pasang paket baru:

    Jendela terminal
    npm install @capgo/capacitor-social-login
    npx cap sync
import { SignInWithApple } from '@capacitor-community/apple-sign-in';
import { SocialLogin } from '@capgo/capacitor-social-login';

Ubah Kunci: Plugin baru memerlukan langkah pengaturan awal yang tidak dibutuhkan sebelumnya.

// No initialization needed in old package
// For iOS: Basic configuration
await SocialLogin.initialize({
apple: {} // Basic iOS configuration
});
// For Android: Additional configuration required
await SocialLogin.initialize({
apple: {
clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal
redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL
}
});

Peringatan 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 parameter yang banyak menjadi lebih bersih API:

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 menggunakan login() dengan provider: 'apple' dan opsi skop opsional daripada melewati nilai konfigurasi individu seperti clientId dan redirectURI.

Hasil sekarang termasuk accessToken objek dengan detail kedaluwarsa dan struktur profile bagian, menggantikan format respons yang lebih datar dari paket asli:

// Old response type
interface AppleSignInResponse {
response: {
user: string;
email: string | null;
givenName: string | null;
familyName: string | null;
identityToken: string | null;
authorizationCode: string | null;
};
}
// New response type
interface 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;
};
};
}

Plugin yang diperbarui memperkenalkan fungsi yang tidak tersedia di pendahulunya:

Mengecek Status Login

// Not available in old package
const status = await SocialLogin.isLoggedIn({
provider: 'apple'
});

Fungsi Keluar

// Not available in old package
await SocialLogin.logout({
provider: 'apple'
});

Metode-metode ini menyediakan isLoggedIn() untuk memverifikasi status autentikasi dan logout() fungsi.

iOS menjaga prosedur pengaturan yang familiar melalui kemampuan Xcode:

  1. Pengaturan iOS tetap sama. Anda masih perlu:
    • Mengaktifkan kemampuan “Masuk dengan Apple” di Xcode
    • Mengonfigurasi aplikasi Anda di Portal Pengembang Apple
    • Tidak ada perubahan tambahan code yang diperlukan untuk iOS

Android saat ini mendapatkan dukungan asli melalui autentikasi OAuth berbasis web:

Plugin baru menyediakan dukungan Android secara langsung, tetapi memerlukan pengaturan tambahan:

  1. Buat ID Layanan di Portal Pengembang Apple
  2. Mengonfigurasi endpoint autentikasi web
  3. Mengatur aplikasi Android Anda untuk menangani alur OAuth
  4. Konfigurasi layanan backend diperlukan

Untuk instruksi setup Android yang lebih rinci, silakan lihat Panduan Setup Android.

Paket modern yang menyediakan:

  1. API yang terintegrasi across beberapa penyedia jejaring sosial (Google, Facebook, Apple)
  2. Pengembangan TypeScript yang diperbaiki dengan definisi tipe yang lebih baik
  3. Pemeliharaan komunitas aktif dibandingkan dengan versi yang sudah tidak digunakan lagi
  4. Dukungan Android yang Terintegrasi melalui autentikasi berbasis web
  5. Manajemen Status Login yang Tidak Terputus
  6. Pengelolaan Kesalahan yang Lebih Baik dengan jenis kesalahan yang konsisten
  1. Inisialisasi yang Tegas Sekarang Diperlukan - tidak ada konfigurasi default
  2. Struktur Objek Respons telah Berubah - format hasil yang terikat
  3. Implementasi Android memerlukan layanan backend untuk OAuth
  4. Pengaturan ulang token berbeda - pengelolaan token yang diperbaiki
  5. Pengaturan error dan jenis error telah berubah - error yang lebih rinci

Untuk instruksi setup yang lebih rinci, silakan lihat dokumentasi resmi.

Lanjutkan dari Migrasi Sign-In Apple ke @capgo/social-login

Bagian berjudul “Lanjutkan dari Migrasi Sign-In Apple ke @capgo/social-login”

Jika Anda menggunakan Migrasi Sign-In Apple ke @capgo/social-login untuk merencanakan autentikasi dan aliran akun, hubungkannya dengan Menggunakan @capgo/capacitor-login-media sosial untuk kemampuan asli dalam Menggunakan @capgo/capacitor-login-media sosial, @capgo/capacitor-login-media sosial untuk detail implementasi dalam @capgo/capacitor-login-media sosial, @capgo/capacitor-passkey untuk detail implementasi dalam @capgo/capacitor-passkey, @capgo/capacitor-biometrik asli untuk detail implementasi dalam @capgo/capacitor-biometrik asli, dan Autentikasi dua faktor untuk detail implementasi dalam Autentikasi dua faktor.