Zum Inhalt springen

Supabase Google Login auf Android

GitHub

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

Die vollständige Implementierung ist im Beispiel-App’s supabaseAuthUtils.ts Datei. Diese Anleitung erklärt die wichtigsten Konzepte und wie man sie verwendet.

Die authenticateWithGoogleSupabase Funktion handhabt den gesamten Authentifizierungsfluss:

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, wie der Authentifizierungsfluss funktioniert, einschließlich der Nonce-Generierung, der JWT-Validierung und der Supabase-Anmeldung, siehe den Wie es funktioniert Abschnitt in der General Setup Anleitung.

Für die vollständige code Referenz, siehe den Vollständige Code Referenz Abschnitt in der General Setup Anleitung.

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

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

Automatische Wiederholung

Abschnitt: Automatische Wiederholung

Die Implementierung umfasst eine automatische Wiederholungslogik:

  • Wenn die JWT-Validierung auf der ersten Versuch fehlschlägt, wird abgemeldet und einmal wiederholt
  • Dies handhabt Fälle, in denen cached Tokens möglicherweise falsche Nonces haben
  • Wenn auch die Wiederholung fehlschlägt, wird ein Fehler zurückgegeben

Wenn die Authentifizierung fehlschlägt:

  • Ungültiger Zuhörer: Überprüfen Sie, ob Ihre Google Client IDs in beiden Google Cloud Console und Supabase übereinstimmen
  • Nonce-Mismatch: Überprüfen Sie die Konsole-Protokolle - die Funktion wird automatisch wiederholt, aber Sie können sich manuell abmelden, wenn erforderlich
  • Token-Validierung fehlschlägt: Stellen Sie sicher, dass Sie mode: 'online' den ID-Token in der Initialisierung aufrufen
  • Überprüfen Sie das Beispiel-App code zur Referenz

Wenn Sie Supabase Google Login auf Android zur Planung der Authentifizierung und Kontoflows verwenden Verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit in Mit @capgo/capacitor-social-login, @capgo/capacitor-social-login für die Implementierungsdetail in @capgo/capacitor-social-login, @capgo/capacitor-passkey für die Implementierungsdetail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für die Implementierungsdetail in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für die Implementierungsdetail in Zwei-Faktor-Authentifizierung.