Lompat ke konten

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

@GitHub

Siap untuk dipaste dengan AI

Judul bagian “Pendahuluan”

Petunjuk ini menjelaskan transisi dari plugin legacy ke paket modern. Plugin baru menyediakan antarmuka yang terintegrasi untuk penyedia autentikasi sosial yang berbeda dengan dukungan TypeScript yang diperbarui dan perawatan aktif. @capacitor-community/apple-sign-in Pemasangan @capgo/capacitor-social-login Judul bagian “Pemasangan”

Hapus paket lama:

Tampilan jendela terminal
  1. Salin ke clipboard

    Instal paket baru:
    npm uninstall @capacitor-community/apple-sign-in
  2. Salin ke clipboard

    Hapus paket lama: __CAPGO_KEEP_0__
    npm install @capgo/capacitor-social-login
    npx cap sync
import { SignInWithApple } from '@capacitor-community/apple-sign-in';
import { SocialLogin } from '@capgo/capacitor-social-login';

Perubahan Kunci: Langkah inisialisasi plugin baru ini memerlukan langkah yang tidak perlu 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 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 menggunakan login() dengan provider: 'apple' dan ruang lingkup opsional daripada melewati nilai konfigurasi individu seperti clientId dan redirectURI.

Hasil sekarang termasuk accessToken objek dengan detail kedaluwarsa dan struktur profile Mengganti 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 ini memperkenalkan fungsi yang tidak tersedia di pendahulunya:

Mengecek Status Login

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

Fungsi Logout

// 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 besarannya sama. Anda masih perlu:
    • Mengaktifkan kemampuan “Sign In dengan Apple” di Xcode
    • Mengonfigurasi aplikasi Anda di Portal Pengembang Apple
    • Tidak ada perubahan tambahan code yang diperlukan untuk iOS

Android Sekarang 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. Konfigurasi endpoint autentikasi web
  3. Atur aplikasi Android Anda untuk menghandle alur OAuth
  4. Konfigurasi layanan backend diperlukan

Untuk instruksi pengaturan Android yang rinci, silakan refer ke Petunjuk Pengaturan Android.

Paket modern yang menyediakan:

  1. API yang Terintegrasi across beberapa penyedia jejaring sosial (Google, Facebook, Apple)
  2. Pengembangan Tipe TypeScript yang Ditingkatkan dengan definisi tipe yang lebih baik
  3. Peliharaan Komunitas Aktif dibandingkan dengan versi yang sudah tidak digunakan lagi
  4. Dukungan Android yang Terintegrasi melalui autentikasi berbasis web
  5. Pengelolaan Status Login yang Tidak Pergi
  6. Pengelolaan Kesalahan yang Lebih Baik dengan jenis kesalahan yang konsisten
  1. Initialisasi eksplisit sekarang diperlukan - tidak ada konfigurasi default
  2. Struktur objek respons telah berubah - format hasil yang terstruktur
  3. Pelaksanaan Android memerlukan layanan backend untuk OAuth
  4. Pengelolaan token telah diperbaiki - pengelolaan token yang lebih baik
  5. Pengelolaan kesalahan dan jenis kesalahan telah berubah - kesalahan yang lebih rinci

Untuk instruksi setup yang lebih rinci, silakan lihat di official documentation.

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

Judul Bagian “Teruskan dari Migrasi Sign-In Apple ke @capgo/social-login”

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