Aller directement au contenu

Supabase Google Login sur Android

GitHub

Cet guide vous aidera à intégrer l'authentification Google Sign-In avec Supabase Authentication sur Android. Il est supposé que vous avez déjà terminé :

La mise en œuvre complète est disponible dans le fichier de l'application d'exemple. supabaseAuthUtils.ts Cette guide explique les concepts clés et comment l'utiliser.

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);
}

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 la connexion à Supabase, voir la section « Comment ça marche » du guide de configuration générale.

Pour la référence complète code , voir la section « Référence complète Code » du guide de configuration générale.

La mise en œuvre de nonce suit le modèle de la documentation de la connexion Google de React Native:

  • rawNonce va à Supabase’s signInWithIdToken()
  • Supabase fait une hache de rawNonce et la compare avec le nonceDigest qui est inclus dans le jeton ID de Google Sign-In
  • nonceDigest (hachage SHA-256, encodé en hexadécimal) va à la nonce paramètre dans les API de Google Sign-In

La mise en œuvre inclut une logique de réessai automatique :

  • Si la validation du 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 incorrectes
  • Si la réessai échoue également, une erreur est renvoyée

Si l'authentification échoue :

  • Audience non valide: Vérifiez que vos identifiants Client Google correspondent dans les deux Google Cloud Console et Supabase
  • Erreur de nonce: Consultez 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' dans l'appel d'initialisation pour obtenir un idToken
  • Examinez l'application d'exemple __CAPGO_KEEP_0__ example app code Si vous utilisez Capacitor, assurez-vous d'utiliser la version 3.0 ou ultérieure

Si vous utilisez Supabase Google Login sur Android 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 les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.