Supabase Google-Login auf iOS
Einen Setup-Befehl mit den Installationsanweisungen und der vollständigen Markdown-Guide für diesen Plugin kopieren.
Einführung
Abschnitt mit dem Titel „Einführung“Diese Anleitung hilft Ihnen, Google Sign-In mit Supabase Authentication auf iOS zu integrieren. Es wird angenommen, dass Sie bereits folgende Schritte abgeschlossen haben:
Implementierung
Abschnitt mit dem Titel “Implementierung”Die vollständige Implementierung ist im Beispiel-App-Datei verfügbar. Diese Anleitung erklärt die wichtigsten Konzepte und wie man sie verwendet. supabaseAuthUtils.ts Mit der Authentifizierungshilfe
Abschnitt mit dem Titel “Mit der Authentifizierungshilfe”
DieBeispiel-App-Datei 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);}Wie es funktioniert
Abschnitt mit dem Titel „Wie es funktioniert“Für eine detaillierte Erklärung des Authentifizierungsflusses, einschließlich der Nonce-Generierung, der JWT-Validierung und der Supabase-Anmeldung, siehe den Abschnitt „Wie es funktioniert“ im General Setup-Leitfaden.
Wichtige Hinweise
Abschnitt mit dem Titel „Wichtige Hinweise“iOS-Token-Caching- und Nonce-Probleme
Abschnitt mit dem Titel „iOS-Token-Caching- und Nonce-Probleme“iOS-Nonce-Caching-Probleme
Bei iOS kann Google Sign-In-Tokens im Cache speichern, was möglicherweise dazu führt, dass die Nonce-Validierung fehlschlägt. validateJWTToken function detects this and automatically handles it:
- Automatische ErkennungDie Funktion überprüft, ob der in dem Token enthaltene Nonce mit dem erwarteten übereinstimmt
nonceDigest - Automatische WiederholungWenn die Validierung fehlschlägt, wird automatisch aus Google ausgeloggt und einmal wiederholt
- FehlerbehandlungWenn auch die Wiederholung fehlschlägt, wird ein Fehler zurückgegeben
Warum das passiertiOS Google Sign-In SDK speichert Tokens zum Zweck der Leistung. Wenn ein gespeichertes Token zurückgegeben wird, kann es möglicherweise mit einem anderen (oder keinem) Nonce generiert worden sein, was zu einem Mismatch führt.
Die LösungDie Implementierung handhabt dies automatisch, indem sie ausloggt und wiederholt, was Google dazu zwingt, ein frisches Token mit dem richtigen Nonce zu generieren.
Manuelle Umgehung wenn sich die automatische Wiederholung nicht erfolgreich verhält:)
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();Damit sichergestellt ist, dass ein frischer Token mit dem richtigen Nonce erhalten wird.
Für die vollständige code-Dokumentation, siehe den Abschnitt "Vollständige Code-Referenz" in der General Setup-Anleitung.
Wichtige Hinweise
Abschnitt mit dem Titel "Wichtige Hinweise"Nonze-Verwaltung
Abschnitt mit dem Titel "Nonze-Verwaltung"Die Nonze-Implementierung folgt dem Muster aus der React Native Google Sign In-Dokumentation:
rawNoncegeht zu Supabase’ssignInWithIdToken()- Supabase berechnet einen Hash von
rawNonceund vergleicht ihn mit demnonceDigestder im Google Sign-In-Token enthalten ist nonceDigest(SHA-256-Hash, hex-kodiert) geht an dennonceParameter in den Google Sign-In-APIs
Automatischer Wiederholungsmechanismus
Abschnitt mit dem Titel “Automatischer Wiederholungsmechanismus”Der authenticateWithGoogleSupabase Funktion enthält ein retry Parameter:
- Erste Anfrage (
retry=false): Wenn die Validierung fehlschlägt, loggt sich automatisch aus und versucht es einmal erneut - Wiederholen Sie die Anrufung (
retry=true): Wenn die Validierung erneut fehlschlägt, wird sofort ein Fehler zurückgegeben
Dies handhabt die iOS-Token-Caching-Problematik automatisch.
Problembehandlung
Abschnitt mit dem Titel “Problembehandlung”Wenn die Anmeldung fehlschlägt:
- Nonce-Mismatch: Die Funktion wiederholt sich automatisch - überprüfen Sie die Konsole-Protokolle für Details. Wenn dies anhaltet, loggen Sie sich manuell aus.
- Ungültige Zielgruppe: Überprüfen Sie, ob Ihre Google-Kunden-IDs in beiden Google-Cloud-Console und Supabase (beide iOS- und Web-Kunden-IDs) übereinstimmen.
- Token-Validierung fehlschlägt: Stellen Sie sicher, dass Sie die richtige Version verwenden
mode: 'online'in der Initialisierungsrufe, um einen idToken zu erhalten - Info.plist-Konfiguration: Stellen Sie sicher, dass Info.plist die korrekten URL-Schemes und GIDClientID enthält
- Überprüfen Sie das Beispielanwendung code zur Referenz
Fortsetzen Sie von Supabase Google Login auf iOS
Abschnitt mit dem Titel “Fortsetzen Sie von Supabase Google Login auf iOS”Wenn Sie Supabase Google Login auf iOS zur Planung der Authentifizierung und der Kontoflows verwenden, verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit in @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 in Zwei-Faktor-Authentifizierung.