Passer au contenu

Supabase Google Connectez-vous sur Android

##Présentation

Ce guide vous aidera à intégrer la connexion Google avec l’authentification Supabase sur Android. On suppose que vous avez déjà complété :

L’implémentation complète est disponible dans le fichier supabaseAuthUtils.ts de l’application exemple. Ce guide explique les concepts clés et comment l’utiliser.

Utilisation de l’assistant d’authentification

Section titled “Utilisation de l’assistant d’authentification”

La fonction authenticateWithGoogleSupabase gère l’intégralité 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 du fonctionnement du flux d’authentification, y compris la génération de noms occasionnels, la validation JWT et la connexion Supabase, consultez la section Comment ça marche dans le guide de configuration générale.

Pour la référence complète du code, consultez la [section Référence complète du code dans le guide de configuration générale] (/docs/plugins/social-login/supabase/google/general/#complete-code-reference).

L’implémentation du nonce suit le modèle de la documentation de connexion React Native Google :

  • rawNonce va au signInWithIdToken() de Supabase
  • Supabase crée un hachage de rawNonce et le compare avec le nonceDigest qui est inclus dans le jeton d’identification de Google Connexion
  • nonceDigest (hachage SHA-256, encodé en hexadécimal) va au paramètre nonce dans les API de connexion Google

L’implémentation inclut une logique de nouvelle tentative 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 mis en cache peuvent avoir des noms occasionnels incorrects
  • Si la nouvelle tentative échoue également, une erreur est renvoyée

Si l’authentification échoue :

  • Audience non valide : vérifiez que vos ID client Google correspondent à la fois dans Google Cloud Console et dans Supabase.
  • Incompatibilité occasionnelle : vérifiez les journaux de la console - la fonction réessayera automatiquement, mais vous pouvez d’abord vous déconnecter manuellement si nécessaire
  • La validation du jeton échoue : assurez-vous d’utiliser mode: 'online' dans l’appel d’initialisation pour obtenir un idToken
  • Consultez l’exemple de code d’application pour référence.