Supabase Google Login im Web
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Einführung
Abschnitt mit dem Titel „Einführung“Diese Anleitung hilft dir dabei, Google Sign-In mit Supabase Authentication im Web zu integrieren. Wir gehen davon aus, dass du bereits Folgendes abgeschlossen hast:
Implementierung
Abschnitt mit dem Titel „Implementation“Die vollständige Implementierung findest du in der Example-App- supabaseAuthUtils.ts Datei. Dieser Guide erklärt die wichtigsten Konzepte und die Anwendung.
Verwendung des Authentication Helpers
Abschnitt mit dem Titel „Using the Authentication Helper“Die 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);}Kritisch: Redirect-Handling
Abschnitt mit dem Titel „Kritisch: Redirect-Handling“Kritisch: Redirect-Handling
Wenn du Google Login im Web nutzt, musst du UNBEDINGT eine beliebige Funktion aus dem Plugin aufrufen, wenn der Redirect stattfindet, damit das Plugin initialisiert wird und den Redirect verarbeiten und das Popup-Fenster schließen kann. Du kannst entweder isLoggedIn() ODER initialize() - beide lösen das Redirect-Handling aus.
Das ist essenziell, damit der OAuth-Popup-Flow korrekt funktioniert.
Implementierungsbeispiel
Abschnitt mit dem Titel „Implementierungsbeispiel“Füge dies deiner Komponente für das Google Sign-In hinzu:
import { useEffect } from 'react';import { SocialLogin } from '@capgo/capacitor-social-login';
function SupabasePage() { // Check Google login status on mount to invoke redirect handling // This doesn't serve any functional purpose in the UI but ensures // that any pending OAuth redirects are properly processed useEffect(() => { const checkGoogleLoginStatus = async () => { try { await SocialLogin.isLoggedIn({ provider: 'google' }); // We don't use the result, this is just to trigger redirect handling } catch (error) { // Ignore errors - this is just for redirect handling console.log('Google login status check completed (redirect handling)'); } };
checkGoogleLoginStatus(); }, []);
// ... rest of your component}Siehe SupabasePage.tsx für ein vollständiges Beispiel.
So funktioniert es
Abschnitt mit dem Titel „So funktioniert es“Eine detaillierte Erklärung zum Authentifizierungs-Flow, inklusive Nonce-Generierung, JWT-Validierung und Supabase Sign-in, findest du im Abschnitt „How It Works“ im General Setup Guide.
Für die vollständige code Referenz schau in den Abschnitt „Complete Code Reference“ im General Setup Guide.
Siehe auch:
- SupabasePage.tsx - Beispielkomponente mit Redirect-Handling
- SupabaseCreateAccountPage.tsx - Beispiel für die Registrierungsseite
Wichtige Hinweise
Abschnitt mit dem Titel „Wichtige Hinweise“Redirect-Handling
Abschnitt mit dem Titel „Redirect-Handling“Wenn du Google Login im Web nutzt, musst du UNBEDINGT eine beliebige Funktion aus dem Plugin aufrufen, wenn der Redirect stattfindet, damit das Plugin initialisiert wird und den Redirect verarbeiten und das Popup-Fenster schließen kann. Du kannst entweder isLoggedIn() ODER initialize() - beide lösen das Redirect-Handling aus.
Dies ist essenziell, damit der OAuth-Popup-Flow korrekt funktioniert. Ohne dies schließt sich das Popup-Fenster nach der Authentifizierung nicht.
Nonce-Handling
Abschnitt mit dem Titel „Nonce-Handling“Die Nonce-Implementierung folgt dem Muster der React Native Google Sign In Dokumentation:
rawNoncegeht an SupabasesignInWithIdToken()- Supabase erstellt einen Hash von
rawNonceund vergleicht ihn mit demnonceDigestder im ID-Token von Google Sign-In enthalten ist nonceDigest(SHA-256 Hash, hex-kodiert) geht an dennonceParameter in den Google Sign-In APIs
Automatischer Retry
Abschnitt mit dem Titel „Automatischer Retry“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 auch der Retry fehlschlägt, wird ein Fehler zurückgegeben
Fehlerbehebung
Abschnitt mit dem Titel „Troubleshooting“Falls die Authentifizierung fehlschlägt:
- Redirect funktioniert nicht: Stellen Sie sicher, dass Sie aufrufen
isLoggedIn()beim Mount der Komponente (siehe Beispiel oben) - Ungültige Audience: Überprüfe, ob deine Google Client IDs in der Google Cloud Console und in Supabase übereinstimmen
- Autorisierte Redirect-URLsStelle sicher, dass die autorisierten Redirect-URLs sowohl in der Google Cloud Console als auch in Supabase konfiguriert sind
- Nonce-Mismatch: Prüfe die Console-Logs – die Funktion versucht es automatisch erneut, du kannst aber bei Bedarf manuell ausloggen
- Token-Validierung fehlgeschlagen: Stelle sicher, dass du
mode: 'online'im initialize-Aufruf verwendest, um ein idToken zu erhalten - Lies die Beispiel-App code als Referenz
Weiter mit Supabase Google Login im Web
Abschnitt mit dem Titel „Weiter mit Supabase Google Login im Web“Wenn Sie ... verwenden Supabase Google Login im Web um Authentifizierungs- und Account-Flows zu planen, verbinde es mit Mit @capgo/capacitor-social-login für die native Funktion in „Mit @capgo/capacitor-social-login“, @capgo/capacitor-social-login für das Implementierungsdetail in @capgo/capacitor-social-login, @capgo/capacitor-passkey für das Implementierungsdetail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für das Implementierungsdetail in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für das Implementierungsdetail in der Zwei-Faktor-Authentifizierung.