Supabase Google Login sur iOS
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Introduction
Section intitulée « Introduction »Cette guide vous aidera à intégrer l'authentification Google avec Supabase Authentication sur iOS. Il est supposé que vous avez déjà complété :
- le Paramètres de connexion Google iOS
- le Paramètres de connexion Google Supabase - Configuration générale.
Implémentation
La mise en œuvre complète est disponible dans lefichier de l'application d'exemple. Ce guide explique les concepts clés et comment l'utiliser. Utilisation de l'Assistant d'authentification supabaseAuthUtils.ts Section intitulée « Implémentation »
Cette guide explique les concepts clés et comment l'utiliser.
Titre de la section « Utilisation de l'assistant d'authentification »Le 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);}Titre de la section « Comment ça marche » Pour une explication détaillée de la manière dont le flux d'authentification fonctionne, y compris la génération de nonce, la validation de JWT et la connexion Supabase, voir la .
section Comment ça marche du guide de configuration générale
Enjeux importantsTitre de la section « Enjeux importants »
Problèmes de cache de jetons iOS et de nonce : : Titre de la section « Problèmes de cache de jetons iOS et de nonce »Problème de stockage de Nonce iOS
Sur iOS, Google Sign-In peut stocker des jetons, ce qui peut entraîner une échec de la validation de la nonce. Le validateJWTToken La fonction détecte cela et gère automatiquement cela :
- Détection automatique: La fonction vérifie si la nonce du jeton correspond à la nonce attendue
nonceDigest - Réessai automatique: Si la validation échoue, elle se déconnecte automatiquement de Google et réessaye une fois
- Gestion des erreurs: Si le réessai échoue également, une erreur est renvoyée
Pourquoi cela se produit: iOS Google Sign-In SDK stocke des jetons pour des raisons de performance. Lorsqu'un jeton stocké est retourné, il peut avoir été généré avec une nonce différente (ou sans nonce), ce qui entraîne un désaccord.
La solution: La mise en œuvre gère automatiquement cela en se déconnectant et en réessayant, ce qui oblige Google à générer un jeton frais avec le nonce correct.
Travail manuel Si la réessai automatique ne fonctionne pas :
// Logout first to clear cached tokensawait SocialLogin.logout({ provider: 'google' });
// Then authenticateconst result = await authenticateWithGoogleSupabase();Cela garantit que le jeton frais est obtenu avec le nonce correct.
Pour la référence complète code, voir la section Référence complète Code de la section de configuration générale.
Notes importantes
Section intitulée « Notes importantes »Gestion du nonce
Section intitulée « Gestion du nonce »La mise en œuvre du nonce suit le modèle de la Documentation de connexion Google React Native:
rawNoncese déplace vers Supabase’ssignInWithIdToken()- Supabase fait une hachage de
rawNonceet le compare avec lenonceDigestqui est inclus dans le jeton ID de Google Sign-In nonceDigesthachage SHA-256 (codé en hexadécimal) se déplace vers lenonceparamètre dans les API de connexion Google
Mécanisme de réessai automatique
Section intitulée « Mécanisme de réessai automatique »Le authenticateWithGoogleSupabase fonction inclut un retry paramètre :
- Premier appel (
retry=falseSi la validation échoue, se déconnecte automatiquement et réessaye une fois - Appel de réessai (
retry=trueSi la validation échoue à nouveau, retourne une erreur immédiatement
Cela gère automatiquement le problème de cache de jetons iOS.
Aide au dépannage
Section intitulée « Aide au dépannage »Si l'authentification échoue :
- Erreur de nonce: La fonction réessaye automatiquement - consultez les journaux de console pour plus de détails. Si cela persiste, déconnectez-vous manuellement en premier
- Audience non valide: Vérifiez que vos identifiants Client Google correspondent dans la console Google Cloud et Supabase (tous les identifiants de client iOS et Web)
- La validation du jeton échoue : Assurez-vous d'utiliser
mode: 'online'dans l'appel d'initialisation pour obtenir un idToken - La configuration de Info.plist : Assurez-vous que Info.plist comporte les schémas URL corrects et GIDClientID
- Vérifiez le l'exemple d'application code pour référence
Continuez avec Supabase Google Login sur iOS
Titre de la section « Continuez avec Supabase Google Login sur iOS »Si vous utilisez Supabase Google Login sur iOS planifier l'authentification et les flux de compte, connectez-l’avec Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @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 L'authentification à deux facteurs pour le détail d'implémentation dans L'authentification à deux facteurs.