Supabase Google Login sur le Web
Copiez une invite de configuration avec les étapes d'installation et la guide markdown complet pour ce plugin.
Introduction
Section intitulée « Introduction »Cette guide vous aidera à intégrer l'authentification Google Sign-In avec Supabase sur le Web. Il est supposé que vous avez déjà complété :
- le l'installation de l'authentification Google Login Web
- The Supabase Google Login - Configuration Générale.
Implémentation
Section intitulée « Implémentation »La mise en œuvre complète est disponible dans le application d'exemple supabaseAuthUtils.ts Le fichier. Ce guide explique les concepts clés et comment l'utiliser.
Utilisation de l'Aide à l'Authentification
Section intitulée « Utilisation de l'Aide à l'Authentification »La authenticateWithGoogleSupabase fonction gère l'ensemble du flux d'authentification :
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);}Critique : Gestion des Redirections
Section intitulée “Critique : Gestion des Redirections”Critique : Gestion des Redirections
Lorsque vous utilisez Google login sur le web, vous devez DEVEZ appeler toute fonction du plugin lors de la redirection pour initialiser le plugin afin qu'il puisse gérer la redirection et fermer la fenêtre de popup. Vous pouvez appeler soit isLoggedIn() OU initialize() - les deux déclencheront la gestion de la redirection.
Cela est essentiel pour que le flux de popup OAuth fonctionne correctement.
Exemple d'implémentation
Section intitulée “Exemple d'implémentation”Ajoutez ceci à votre composant qui gère Google Sign-In :
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}Voir le SupabasePage.tsx pour un exemple complet.
Comment ça marche
Section intitulée “Comment ça marche”Pour une explication détaillée de la façon dont le flux d'authentification fonctionne, y compris la génération de nonce, la validation de JWT et l'inscription Supabase, voir le section Comment ça marche du guide de configuration générale.
Pour la référence complète code, voir la section de la référence complète Code du guide de configuration générale.
Voir aussi :
- SupabasePage.tsx - Exemple de composant avec gestion de redirection
- SupabaseCreateAccountPage.tsx - Exemple de page de création de compte
Notes importantes
Section intitulée “Notes importantes”Gestion de redirection
Section intitulée “Gestion de redirection”Lorsque vous utilisez le login Google sur le web, vous DEVEZ appeler toute fonction du plugin lorsque la redirection se produit pour initialiser le plugin afin qu'il puisse gérer la redirection et fermer la fenêtre de popup. Vous pouvez appeler isLoggedIn() OU initialize() - les deux déclencheront la gestion de la redirection.
This is essential for the OAuth popup flow to work correctly. Without this, the popup window won’t close after authentication.
Traitement du nonce
Section intitulée « Traitement du nonce »La mise en œuvre du nonce suit le modèle de la documentation de React Native Google Sign In se rend sur Supabase’s:
rawNonceSupabase fait une hache designInWithIdToken()- et la compare avec le
rawNoncequi est inclus dans le jeton d'ID de Google Sign-InnonceDigest(hachage SHA-256, encodé en hexadécimal) se rend sur le nonceDigestparamètre dans les API de Google Sign-InnonceRéessayer automatiquement
__CAPGO_KEEP_0__
Section intitulée « Rétenteur automatique »La mise en œuvre comprend une logique de rétenteur automatique :
- Si la validation JWT échoue à la première tentative, elle se déconnecte et réessaye une fois
- Cela gère les cas où les jetons stockés dans la cache pourraient avoir des nonces incorrects
- Si la réessai également échoue, une erreur est renvoyée
Diagnostic
Section intitulée « Diagnostic »Si l'authentification échoue :
- Le redirigeant ne fonctionne pas: Assurez-vous d'appeler
isLoggedIn()à la montée du composant (voir exemple ci-dessus) - L'audience est invalide: Vérifiez que vos identifiants Client Google correspondent dans les deux Google Cloud Console et Supabase
- URLs de redirection autorisées: Vérifiez que les URLs de redirection autorisées sont configurées dans les deux Google Cloud Console et Supabase
- Erreur de nonce: Vérifiez les journaux de console - la fonction se réessayera automatiquement, mais vous pouvez vous déconnecter manuellement si nécessaire
- Échec de la validation du jeton: Assurez-vous d'utiliser
mode: 'online'le __CAPGO_KEEP_0__ dans l'appel d'initialisation pour obtenir un idToken - Examinez l'exemple d'app __CAPGO_KEEP_0__ example app code Continuez de Supabase Google Login on Web
: Assurez-vous d'utiliser le __CAPGO_KEEP_0__ dans l'appel d'initialisation pour obtenir un idToken
Section intitulée « Continuez à partir de Supabase Google Login sur Web »Si vous utilisez Supabase Google Login sur Web pour planifier l'authentification et les flux de compte, connectez-le avec En utilisant @capgo/capacitor-social-login pour la capacité native dans En utilisant @capgo/capacitor-social-login, @capgo/capacitor-social-login pour le détail d'implémentation dans @capgo/capacitor-social-login, @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-native-biometric pour le détail d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour le détail d'implémentation dans Authentification à deux facteurs.