Langsung ke konten

Supabase Google Masuk di Android

Panduan ini akan membantu Anda mengintegrasikan Google Masuk dengan Supabase Otentikasi di Android. Diasumsikan bahwa Anda telah menyelesaikan:

Implementasi lengkapnya tersedia di file aplikasi contoh supabaseAuthUtils.ts. Panduan ini menjelaskan konsep-konsep utama dan cara menggunakannya.

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);
}

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.

Implementasi nonce mengikuti pola dari dokumentasi Masuk React Native Google:

  • rawNonce pergi ke signInWithIdToken() Supabase
  • Supabase membuat hash rawNonce dan membandingkannya dengan nonceDigest yang disertakan dalam token ID dari Google Masuk
  • nonceDigest (hash SHA-256, dikodekan hex) masuk ke parameter nonce di Google Sign-In API

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

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