Passer au contenu

Supabase Google Login sur Android

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

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

Section intitulée « Utilisation de l'assistant d'authentification »

La

fonction gère l'ensemble du flux d'authentification : authenticateWithGoogleSupabase Copier dans le presse-papier

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 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 Référence complète Code section du guide de configuration générale.

La mise en œuvre de nonce suit le modèle de la documentation de l'inscription Google Sign In 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 d'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, il 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
  • Mauvais nonce: Vérifiez les journaux de console - la fonction tentera automatiquement de se reconnecter, mais vous pouvez vous déconnecter manuellement en premier 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' exemple d'application code pour référence

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-biometrique pour les détails d'implémentation dans @capgo/capacitor-native-biometrique, et Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.