Supabase Google Login pada iOS
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pengenalan
Judul bagian “Pengenalan”Buku panduan ini akan membantu Anda mengintegrasikan Sign-In Google dengan Supabase Authentication pada iOS. Diperkirakan bahwa Anda telah menyelesaikan:
Implementasi
Bagian berjudul “Implementasi”Implementasi lengkap tersedia di file aplikasi contoh. supabaseAuthUtils.ts Panduan ini menjelaskan konsep utama dan cara menggunakan fitur ini.
Menggunakan Bantuan Autentikasi
Bagian berjudul “Menggunakan Bantuan Autentikasi”Fungsi authenticateWithGoogleSupabase __CAPGO_KEEP_0__ mengelola seluruh alur autentikasi:
import { authenticateWithGoogleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithGoogleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}Bagaimana Cara Kerjanya
Bagian berjudul “Bagaimana Cara Kerjanya”Untuk penjelasan rinci tentang bagaimana alur autentikasi bekerja, termasuk penghasilan nonce, validasi JWT, dan sign-in Supabase, lihatlah Bagian Bagaimana Cara Kerjanya di Panduan Pengaturan Umum.
Keterangan Penting
Bagian berjudul “Keterangan Penting”Masalah Cache Token iOS dan Nonce
Bagian berjudul “Masalah Cache Token iOS dan Nonce”Masalah Cache Nonce iOS
Pada iOS, Google Sign-In dapat menyimpan token, yang mungkin menyebabkan validasi nonce gagal. Fungsi ini mendeteksi hal ini dan secara otomatis mengatasi masalahnya: validateJWTToken __CAPGO_KEEP_0__
- Pengenalan Otomatis: Fungsi ini memeriksa apakah nonce di token sesuai dengan yang diharapkan
nonceDigest - Pengulangan Otomatis: Jika validasi gagal, maka keluar dari Google dan mencoba sekali lagi
- Pengelolaan Kesalahan: Jika usaha ulang juga gagal, maka kesalahan dikembalikan
Mengapa hal ini terjadi: iOS Google Sign-In SDK menyimpan token untuk meningkatkan kinerja. Ketika token yang disimpan dikembalikan, mungkin telah dibuat dengan nonce yang berbeda (atau tidak ada nonce), sehingga menyebabkan kesalahan.
Solusi: Implementasi ini secara otomatis mengatasi masalah ini dengan keluar dan mencoba ulang, yang memaksa Google untuk membuat token segar dengan nonce yang benar.
Penggantian Tangan (jika pengulangan otomatis tidak berfungsi):
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();Hal ini memastikan token segar diperoleh dengan nonce yang benar.
Untuk referensi code yang lengkap, lihat bagian Referensi Code Lengkap dalam Panduan Pengaturan Umum.
Catatan Penting
Judul Bagian “Catatan Penting”Pengelolaan Nonce
Judul Bagian “Pengelolaan Nonce”Implementasi nonce mengikuti pola dari dokumentasi Google Sign In React Native:
rawNoncepergi ke Supabase’ssignInWithIdToken()- Supabase membuat hash dari
rawNoncedan membandingkannya dengan yangnonceDigestyang termasuk dalam token ID dari Google Sign-In nonceDigest(hash SHA-256, hex-encoding) pergi kenonceparameter dalam API Google Sign-In
Mekanisme Ulang Coba Otomatis
Bab yang berjudul “Mekanisme Ulang Coba Otomatis”Capgo authenticateWithGoogleSupabase fungsi ini termasuk retry parameter:
- Panggilan pertama (
retry=false): Jika validasi gagal, secara otomatis keluar dan mencoba sekali lagi - Panggilan ulang (
retry=trueJika validasi gagal lagi, langsung kembali error
Ini mengatasi masalah caching token iOS secara otomatis.
Pengaturan
Judul bagian “Pengaturan”Jika autentikasi gagal:
- Perbedaan nonce: Fungsi ini secara otomatis mengulang - periksa log konsol untuk detail. Jika tetap berlanjut, keluar manual terlebih dahulu
- Audien tidak valid: Pastikan ID Klien Google Anda sesuai di kedua Google Cloud Console dan Supabase (kedua ID klien iOS dan Web)
- Validasi token gagal: Pastikan Anda menggunakan
mode: 'online'dalam panggilan inisialisasi untuk mendapatkan idToken - Konfigurasi Info.plist: Pastikan Info.plist memiliki skema URL yang benar dan GIDClientID
- Tinjau contoh aplikasi __CAPGO_KEEP_0__ example app code Lanjutkan dari Supabase Google Login pada iOS
Bagian berjudul “Lanjutkan dari Supabase Google Login pada iOS”
Jika Anda menggunakanSupabase Google Login pada iOS untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login untuk kemampuan native di Menggunakan @capgo/capacitor-social-login for the native capability in Using @capgo/capacitor-social-login, @capgo/capacitor-login-sosial untuk detail implementasi di @capgo/capacitor-login-sosial, @capgo/capacitor-passkey untuk detail implementasi di @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.