Zum Inhalt springen

Supabase Google-Login auf Android

Diese Anleitung hilft Ihnen dabei, Google Sign-In mit Supabase Authentication auf Android zu integrieren. Es wird davon ausgegangen, dass Sie bereits folgende Schritte abgeschlossen haben:

  • __CAPGO_KEEP_0__ die
  • Google Login Android-Einrichtung die.

Supabase Google Login - Allgemeine Einrichtung

Implementierung

Die vollständige Implementierung ist im __CAPGO_KEEP_1__ supabaseAuthUtils.ts Datei verfügbar. Diese Anleitung erklärt die wichtigsten Konzepte und wie Sie es verwenden können.

Die Funktion verarbeitet den gesamten Authentifizierungsfluss: authenticateWithGoogleSupabase Zum Clipboard kopieren

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

Für die vollständige __CAPGO_KEEP_0__-Dokumentation siehe den Abschnitt „Vollständige __CAPGO_KEEP_0__-Dokumentation“ im General Setup-Leitfaden Wichtige Hinweise.

For the complete code reference, see the Complete Code Reference section in the General Setup guide.

Die Implementierung von Nonce folgt dem Muster aus der React Native Google Sign In-Dokumentation:

  • rawNonce geht zu Supabases signInWithIdToken()
  • Supabase erstellt einen Hash von rawNonce und vergleicht ihn mit dem nonceDigest der im ID-Token von Google Sign-In enthalten ist
  • nonceDigest (SHA-256-Hash, hex-kodiert) geht zum nonce Parameter in den Google Sign-In-APIs

Die Implementierung enthält automatisches Wiederholungslogik:

  • Wenn die JWT-Validierung auf der ersten Anfrage fehlschlägt, wird abgemeldet und einmal wiederholt
  • Dies handhabt Fälle, in denen sich die in der Zwischenspeicherung gespeicherten Token möglicherweise mit falschen Nonces unterscheiden
  • Wenn auch die Wiederholversuch fehlschlägt, wird ein Fehler zurückgegeben

Wenn die Authentifizierung fehlschlägt:

  • Ungültiger Empfänger: Überprüfe, ob deine Google-Kunden-IDs in beiden Google Cloud Console und Supabase übereinstimmen
  • Nonce-Mismatch: Überprüfe die Konsole-Protokolle - die Funktion wird automatisch wiederholt, aber du kannst dich manuell abmelden, wenn nötig
  • Token-Validierung fehlschlägt: Stelle sicher, dass du die richtige Version verwendest mode: 'online' in der Initialisierungsrufe, um einen idToken zu erhalten
  • Überprüfen Sie das Beispielanwendung code zur Referenz