Zum Inhalt springen

Supabase Google Login auf Android

GitHub

Diese Anleitung hilft dir dabei, Google Sign-In mit Supabase Authentication unter Android zu integrieren. Wir gehen davon aus, dass du bereits Folgendes abgeschlossen hast:

Die vollständige Implementierung findest du im der Beispiel-App supabaseAuthUtils.ts Datei. Dieser Guide erklärt die wichtigsten Konzepte und die Anwendung.

Der authenticateWithGoogleSupabase Funktion übernimmt den gesamten Authentication-Flow:

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 eine detaillierte Erklärung des Authentication-Flows, inklusive Nonce-Generierung, JWT-Validierung und Supabase Sign-in, siehe den Abschnitt „How It Works“ im General Setup Guide.

Für die vollständige code Referenz siehe die Schließe den Code Referenzabschnitt im General Setup Guide ab.

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

  • rawNonce geht an Supabase 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 an den nonce Parameter in den Google Sign-In APIs

Die Implementierung enthält eine automatische Retry-Logik:

  • Schlägt die JWT-Validierung beim ersten Versuch fehl, erfolgt ein Logout und ein erneuter Versuch
  • Dies deckt Fälle ab, in denen gecachte Tokens falsche Nonces enthalten könnten
  • Falls der Retry ebenfalls fehlschlägt, wird ein Error zurückgegeben

Falls die Authentifizierung fehlschlägt:

  • Ungültige Audience: Überprüfe, ob deine Google Client IDs in der Google Cloud Console und in Supabase übereinstimmen
  • Nonce-Mismatch: Prüfe die Console Logs – die Funktion versucht es automatisch erneut, du kannst aber bei Bedarf manuell vorher ausloggen
  • Token-Validierung fehlgeschlagen: Stelle sicher, dass du mode: 'online' im initialize-Aufruf nutzt, um ein idToken zu erhalten
  • Überprüfe die Beispiel-App code als Referenz

Wenn du es nutzt Supabase Google Login auf Android Um Authentifizierungs- und Account-Flows zu planen, verbinde es mit @capgo/capacitor-social-login verwenden für die native Funktion bei der Verwendung von @capgo/capacitor-social-login, @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login, @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für die Implementierungsdetails zur Zwei-Faktor-Authentifizierung.