Supabase Google Masuk di Android
Pendahuluan
Section titled “Pendahuluan”Panduan ini akan membantu Anda mengintegrasikan Google Masuk dengan Supabase Otentikasi di Android. Diasumsikan bahwa Anda telah menyelesaikan:
Implementasi
Section titled “Implementasi”Implementasi lengkapnya tersedia di file aplikasi contoh supabaseAuthUtils.ts. Panduan ini menjelaskan konsep-konsep utama dan cara menggunakannya.
Menggunakan Pembantu Otentikasi
Section titled “Menggunakan Pembantu Otentikasi”Fungsi authenticateWithGoogleSupabase menangani 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);}Cara Kerjanya
Section titled “Cara Kerjanya”Untuk penjelasan mendetail tentang cara kerja alur autentikasi, termasuk pembuatan nonce, validasi JWT, dan proses masuk Supabase, lihat bagian Cara Kerja di panduan Penyiapan Umum.
Untuk referensi kode lengkap, lihat bagian Referensi Kode Lengkap di panduan Pengaturan Umum.
Catatan Penting
Section titled “Catatan Penting”Penanganan Nonce
Section titled “Penanganan Nonce”Implementasi nonce mengikuti pola dari dokumentasi Masuk React Native Google:
rawNoncepergi kesignInWithIdToken()Supabase- Supabase membuat hash
rawNoncedan membandingkannya dengannonceDigestyang disertakan dalam token ID dari Google Masuk nonceDigest(hash SHA-256, dikodekan hex) masuk ke parameternoncedi Google Sign-In API
Coba Ulang Otomatis
Section titled “Coba Ulang Otomatis”Implementasinya mencakup logika percobaan ulang otomatis:
- Jika validasi JWT gagal pada upaya pertama, validasi akan logout dan mencoba lagi satu kali
- Ini menangani kasus di mana token yang di-cache mungkin memiliki nonce yang salah
- Jika percobaan ulang juga gagal, kesalahan akan dikembalikan
Pemecahan masalah
Section titled “Pemecahan masalah”Jika otentikasi gagal:
- Pemirsa tidak valid: Verifikasi kecocokan ID Klien Google Anda di Google Cloud Console dan Supabase
- Nonce mismatch: Periksa log konsol - fungsi akan mencoba ulang secara otomatis, namun Anda dapat logout secara manual terlebih dahulu jika diperlukan
- Validasi token gagal: Pastikan Anda menggunakan
mode: 'online'dalam panggilan inisialisasi untuk mendapatkan idToken - Tinjau contoh kode aplikasi untuk referensi