Connexion Apple avec Supabase sur Android
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Prerequisites
Section intitulée « Prérequis »Ce guide vous aidera à intégrer Apple Sign-In avec Supabase Authentication sur Android. Nous supposons que vous avez déjà terminé :
Étape 1 : déployer l'Edge Function backend
Section intitulée « Étape 1 : déployer l'Edge Function backend »Nous devons d'abord déployer la Supabase Edge Function qui gérera le callback OAuth d'Apple.
-
Accédez au répertoire de votre projet Supabase
Fenêtre de terminal cd your-project/supabase -
Créez l'edge function (si elle n'existe pas)
Fenêtre de terminal supabase functions new apple-signin-callback -
Copier l'edge function code
L'implémentation complète de l'edge function est disponible dans l' application exemple.
Copiez les fichiers suivants dans votre projet :
supabase/functions/apple-signin-callback/index.ts- Edge function principale codesupabase/functions/apple-signin-callback/deno.json- Import map pour les dépendances (inclut lajosebibliothèque pour la signature JWT)
-
Configurer la vérification JWT
L'endpoint de callback OAuth d'Apple doit être public (aucune authentification requise) car Apple redirigera vers lui. Mettez à jour votre
supabase/config.tomlfichier :[functions.apple-signin-callback]enabled = trueverify_jwt = false # Important: Set to false for public OAuth callbackimport_map = "./functions/apple-signin-callback/deno.json"entrypoint = "./functions/apple-signin-callback/index.ts" -
Déployer la fonction
Fenêtre de terminal supabase functions deploy apple-signin-callback -
Récupérer l'URL de votre fonction
Après le déploiement, vous obtiendrez une URL comme :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSi vous ne la trouvez pas, vous pouvez procéder ainsi :
- Ouvrez
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Cliquez sur
apple-signin-callbackURL de la fonction pour la copier.
- Ouvrez
Étape 2 : Configurer le portail Apple Developer
Section intitulée « Étape 2 : Configurer le portail Apple Developer »Nous devons maintenant configurer le portail Apple Developer avec l'URL du backend et récupérer toutes les valeurs requises.
-
Suivez le guide de configuration Apple Login pour Android
Terminez la guide de configuration Apple Login pour Android pour :
- Créer un Service ID
- Générer une clé privée (fichier .p8)
- Récupérer votre Team ID et votre Key ID
- Configurer l'URL de retour
-
Définir l'URL de retour dans le portail Apple Developer
Lors de la configuration de l'URL de retour dans le portail Apple Developer (étape 6.9 du guide Apple), utilisez l'URL de votre Supabase Edge Function :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportant : utilisez l'URL de la Supabase Edge Function
N'utilisez PAS l'URL de redirection du guide de configuration Apple Login pour Android. Ce guide utilise l'URL d'un serveur backend personnalisé. Pour l'intégration avec Supabase, vous devez utiliser l'URL de votre Supabase Edge Function à la place.
-
Récupérez toutes les valeurs requises
Après avoir suivi le guide de configuration Apple, vous devriez avoir :
- APPLE_TEAM_ID: Votre Apple Developer Team ID
- APPLE_KEY_ID: Le Key ID du portail Apple Developer
- APPLE_PRIVATE_KEY: Votre fichier de clé privée .p8 (doit être encodé en base64)
- ANDROID_SERVICE_ID: Votre Apple Service ID (ex :
com.example.app.service) - BASE_REDIRECT_URL: Votre URL de deep link (ex :
capgo-demo-app://path)
Étape 3 : Définir les secrets Supabase
Section intitulée « Étape 3 : Configurer les secrets Supabase »Nous devons maintenant configurer les variables d'environnement (secrets) pour la Supabase Edge Function.
-
Encoder votre clé privée
Tout d'abord, encodez votre clé privée Apple (fichier .p8) en base64 :
Fenêtre de terminal base64 -i AuthKey_XXXXX.p8Copiez l'intégralité du résultat (il s'agit d'une seule longue chaîne).
-
Configurez les secrets via CLI de Supabase
Fenêtre de terminal supabase secrets set APPLE_TEAM_ID=your_team_idsupabase secrets set APPLE_KEY_ID=your_key_idsupabase secrets set APPLE_PRIVATE_KEY=your_base64_encoded_keysupabase secrets set ANDROID_SERVICE_ID=your.service.idsupabase secrets set BASE_REDIRECT_URL=your-app://pathsupabase secrets set APPLE_REDIRECT_URI=https://your-project-ref.supabase.co/functions/v1/apple-signin-callback -
Alternative : Configurer les secrets dans le dashboard Supabase
Si vous préférez utiliser le dashboard :
- Allez sur le dashboard de votre projet Supabase
- Accédez à Edge Functions → Paramètres → Secrets
- Ajoutez chaque variable secrète avec sa valeur
Étape 4 : Utiliser l'Authentication Helper
Section intitulée « Étape 4 : Utiliser l'Authentication Helper »Vous pouvez maintenant utiliser l'Authentication Helper dans votre app code.
Implémentation
Section intitulée « Implémentation »L'implémentation complète est disponible dans le fichier de l'application d'exemple. supabaseAuthUtils.ts fichier.
Utilisation de l'Authentication Helper
Section intitulée « Utilisation de l'Authentication Helper »import { authenticateWithAppleSupabase } from './supabaseAuthUtils';
const result = await authenticateWithAppleSupabase();if (result.success) { console.log('Signed in:', result.user); // Navigate to your authenticated area} else { console.error('Error:', result.error);}Mettre à jour la fonction helper
Section intitulée « Mettre à jour la fonction helper »Lorsque vous utilisez la authenticateWithAppleSupabase fonction helper, vous devez devez mettre à jour les valeurs suivantes selon votre configuration :
-
Mise à jour
redirectUrl- Définissez ceci sur l'URL de votre Supabase Edge Function :const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Mise à jour
clientId- Définissez ce champ sur votre Apple Service ID :await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
Consultez le implémentation complète pour référence.
Étape 5 : Tester l'intégration
Section intitulée « Étape 5 : Tester l'intégration »-
Compiler et lancer votre application Android
Fenêtre de terminal npx cap sync androidnpx cap run android -
Tester le flux d'authentification
- Appuyer sur le bouton « Sign in with Apple »
- La page OAuth d'Apple devrait s'afficher dans un navigateur
- Après l'authentification, vous devriez être redirigé vers votre application
- Check the console logs for any errors
-
Vérifier le flux
Le flux complet devrait être :
- L'utilisateur appuie sur « Sign in with Apple »
- L'app ouvre le navigateur avec l'OAuth Apple
- L'utilisateur s'authentifie auprès d'Apple
- Apple redirige vers :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - L'Edge function échange code contre des tokens
- L'Edge function redirige vers :
your-app://path?id_token=...&access_token=... - L'app Android reçoit le deep link et traite l'identity token
- L'app se connecte à Supabase avec l'identity token
Troubleshooting
Section intitulée « Dépannage »Si l'authentification échoue :
- Redirect URI incorrect: Vérifiez que l'URL de retour dans le portail Apple Developer correspond exactement à
APPLE_REDIRECT_URIsecret - Le deep link ne fonctionne pas: Vérifiez que
AndroidManifest.xmll'intent filter correspond à votreBASE_REDIRECT_URL - Secrets manquants: Vérifiez que tous les secrets sont correctement configurés avec
supabase secrets list - L'échange de token échoueConsultez les logs des edge functions dans le dashboard Supabase pour des messages d'erreur détaillés
- L'application ne reçoit pas le callback: Ensure
onNewIntentest correctement implémenté dans MainActivity - Consultez l’ exemple d’application code pour référence
Comment ça marche
Section « Comment ça marche »Sur Android, Apple Sign-In utilise un flux de redirection OAuth :
- Initialisation: Le plugin est initialisé avec votre Service ID et l'URL de redirection backend
- Flux OAuth: Ouvre un navigateur/Chrome Custom Tab vers la page OAuth d'Apple
- Callback backend: Apple redirige vers votre Supabase Edge Function avec un code d'autorisation
- Échange de token: L'edge function échange le code contre des tokens via l'endpoint de token d'Apple
- Redirection par deep link: L'edge function redirige vers votre application avec l'identity token
- Authentification Supabase: L'application reçoit le token et se connecte à Supabase
Ce flux est nécessaire car Apple ne propose pas de support natif Android pour Sign in with Apple.
Continuer depuis Supabase Apple Login sur Android
Section intitulée « Continuer avec la connexion Apple via Supabase sur Android »Si vous utilisez Connexion Apple avec Supabase sur Android pour planifier les flux d'authentification et de compte, le connecter à Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @capgo/capacitor-social-login @capgo/capacitor-social-login pour les détails d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour les détails 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 de l'authentification à deux facteurs.