Supabase Google Login pada iOS
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Petunjuk Pengenalan
Bab yang berjudul “Petunjuk Pengenalan”Guide ini akan membantu Anda mengintegrasikan Sign-In Google dengan Supabase Authentication pada iOS. Diperkirakan Anda telah menyelesaikan:
- __CAPGO_KEEP_0__ Pengaturan Login Google iOS
- Pengaturan Umum Login Google - Supabase Pengimplementasian.
Bab yang berjudul “Pengimplementasian”
Pengimplementasian lengkap tersedia dalamContoh Aplikasi’s file. Guide ini menjelaskan konsep utama dan cara menggunakan fitur tersebut. supabaseAuthUtils.ts __CAPGO_KEEP_0__
Menggunakan Bantuan Otentikasi
Judul Bagian “Menggunakan Bantuan Otentikasi”The authenticateWithGoogleSupabase fungsi ini mengelola seluruh alur otentikasi:
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);}Cara Kerjanya
Bagian Judul “Cara Kerjanya”Untuk penjelasan rinci tentang bagaimana alur otentikasi bekerja, termasuk penghasilan nonce, validasi JWT, dan masuk ke Supabase, lihat bagian Cara Kerjanya di Panduan Pengaturan Umum.
Ketentuan Penting
Bagian Judul “Ketentuan Penting”Masalah Cache Token iOS dan Nonce
Masalah Penyimpanan Token iOS dan NonceMasalah Penyimpanan 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 masalah tersebut: validateJWTToken Detection Otomatis
- : Fungsi ini memeriksa apakah nonce di token sesuai dengan nonce yang diharapkanRetry Otomatis
nonceDigest - : Jika validasi gagal, maka fungsi ini secara otomatis keluar dari Google dan mencoba sekali lagiPengelolaan Kesalahan
- : Jika retry juga gagal, maka kesalahan akan dikembalikanMengapa hal ini terjadi
: Google Sign-In iOS __CAPGO_KEEP_0__ menyimpan token untuk meningkatkan kinerja. Ketika token yang disimpan dikembalikan, mungkin telah dibuat dengan nonce yang berbeda (atau tidak ada nonce), sehingga menyebabkan kesalahan: iOS Google Sign-In SDK caches tokens for performance. When a cached token is returned, it may have been generated with a different nonce (or no nonce), causing a mismatch.
Solusi ini: Implementasinya secara otomatis menghandle hal ini dengan keluar dan mencoba ulang, yang memaksa Google untuk menghasilkan token segar dengan nonce yang benar.
Kerja Manual (jika ulang otomatis tidak berhasil):
// 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 lengkap code lihat bagian Referensi Lengkap Code dalam Panduan Pengaturan Umum.
Catatan Penting
Bagian berjudul “Catatan Penting”Pengelolaan Nonce
Bagian berjudul “Pengelolaan Nonce”Implementasi nonce mengikuti pola dari dokumentasi Google Sign In untuk React Native:
rawNonceberpindah ke Supabase’ssignInWithIdToken()- Supabase membuat hash dari
rawNoncedan membandingkannya dengannonceDigestyang termasuk dalam token ID dari Google Sign-In nonceDigest(hash SHA-256, hex-encoded) berpindah kenonceparameter di API Google Sign-In
Mechanisme Ulang Coba Otomatis
Judul bagian “Mechanisme Ulang Coba Otomatis”Fungsi authenticateWithGoogleSupabase fungsi ini termasuk retry parameter:
- Pertama kali (
retry=false): Jika validasi gagal, secara otomatis keluar dan mencoba sekali lagi - Coba lagi (
retry=true): Jika validasi gagal lagi, langsung kembali error
Ini mengatasi masalah caching token iOS secara otomatis.
Pengaturan
Bab yang berjudul “Pengaturan”Jika autentikasi gagal:
- Kesalahan nonce: Fungsi secara otomatis mencoba ulang - 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)
- Token validasi 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
- Review 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 menggunakanJika Anda menggunakan Supabase Google Login pada iOS untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-login-social untuk kemampuan asli dalam Menggunakan @capgo/capacitor-login-social, @capgo/capacitor-login-social untuk detail implementasi dalam @capgo/capacitor-login-social, @capgo/capacitor-passkey untuk detail implementasi dalam @capgo/capacitor-passkey, @capgo/capacitor-biometrik-asli untuk detail implementasi dalam @capgo/capacitor-biometrik-asli, dan Dua faktor autentikasi untuk detail implementasi dalam Dua faktor autentikasi.