Supabase Apple Login sur Android
Copiez une commande d'installation avec les étapes et la guide markdown complète pour ce plugin.
Prérequis
Section intitulée « Prérequis »Ce guide vous aidera à intégrer Apple Sign-In avec l'authentification Supabase sur Android. Il est supposé que vous avez déjà terminé :
Étape 1 : Déployez la fonction Edge Backend
Section intitulée « Étape 1 : Déployez la fonction Edge Backend »Tout d'abord, nous devons déployer la fonction Edge Supabase qui gérera l'appel de rappel Apple OAuth.
-
Naviguez jusqu'à votre dossier de projet Supabase
Fenêtre de terminal cd your-project/supabase -
Créez la fonction de bord (si elle n'existe pas)
Fenêtre de terminal supabase functions new apple-signin-callback -
Copiez la fonction de bord code
La mise en œuvre complète de la fonction de bord est disponible dans l' application d'exemple.
Copiez les fichiers suivants dans votre projet :
supabase/functions/apple-signin-callback/index.ts- Fonction de bord principale codesupabase/functions/apple-signin-callback/deno.json- Carte d'importation pour les dépendances (inclutjosela bibliothèque pour la signature JWT)
-
Configurez la vérification JWT
L'endpoint de rappel OAuth d'Apple doit être public (aucune authentication requise) car Apple le 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éployez la fonction
Fenêtre de terminal supabase functions deploy apple-signin-callback -
Obtenez 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 pouvez pas le trouver, vous pouvez faire les choses suivantes :
- Ouvrir
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Cliquez sur le
apple-signin-callbackURL de la fonction pour le copier.
- Ouvrir
Étape 2 : Configurer le Portail des développeurs Apple
Section intitulée « Étape 2 : Configurer le Portail des développeurs Apple »Maintenant, nous devons configurer le Portail des développeurs Apple avec l'URL de l'arrière-plan et obtenir toutes les valeurs requises.
-
Suivez le guide de configuration d'Apple Login pour Android
Completer le guide de configuration d'Apple Login pour Android à :
- Créer un ID de service
- Générez une clé privée (.p8 fichier)
- Obtenez votre ID d'équipe et votre ID de clé
- Configurez l'URL de retour
-
Définir l'URL de retour dans le Portail du développeur Apple
Lors de la configuration de l'URL de retour dans le Portail du développeur Apple (étape 6.9 du guide Apple), utilisez votre URL de fonction Edge Supabase :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportant : Utilisez l'URL de fonction Edge Supabase
N'utilisez pas l'URL de redirection provenant du guide de configuration de l'authentification Apple Login Android . Ce guide utilise une URL de serveur backend personnalisée.Pour l'intégration Supabase, vous devez utiliser votre URL de fonction Edge Supabase au lieu de celle-ci. Correspondance exacte requise
-
Après avoir terminé la guide de configuration Apple, vous devriez avoir :
APPLE_TEAM_ID
- : Votre identifiant de l'équipe de développeur AppleAPPLE_KEY_ID
- : L'ID de clé provenant du portail du développeur AppleAPPLE_PRIVATE_KEY
- : Votre fichier de clé privée .p8 (doit être encodé en base64)ANDROID_SERVICE_ID
- : Votre ID de service Apple (par exemple,exactly
com.example.app.service) - BASE_REDIRECT_URL: Votre URL de lien profond (par exemple,
capgo-demo-app://path)
Étape 3 : Définir les secrets Supabase
Section intitulée « Étape 3 : Définir les secrets de Supabase »Nous devons maintenant configurer les variables d'environnement (secrets) pour la fonction Edge de Supabase.
-
Encodez votre clé privée
Tout d'abord, encodez votre clé privée Apple (.p8) en base64 :
Fenêtre de terminal base64 -i AuthKey_XXXXX.p8Copiez l'ensemble de la sortie (il s'agit d'une seule longue chaîne).
-
Définir les secrets à l'aide de Supabase CLI
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 : Définir des secrets dans le tableau de bord de Supabase
Si vous préférez utiliser le tableau de bord :
- Allez dans votre tableau de bord de projet Supabase
- Naviguez vers Fonctions Edge → Paramètres → Secrets
- Ajoutez chaque variable de secret avec sa valeur
Étape 4 : Utilisez l'assistant d'authentification
Sous-titre « Étape 4 : Utilisez l'assistant d'authentification »Vous pouvez maintenant utiliser l'assistant d'authentification dans votre application code.
Implémentation
Sous-titre « Implémentation »La mise en œuvre complète est disponible dans le fichier de l'application d'exemple. supabaseAuthUtils.ts En utilisant l'Aideur d'authentification
Section intitulée “En utilisant l'Aideur d'authentification”
Copier dans le presse-papiersimport { 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);}Section intitulée “Mettre à jour la fonctionnalité de l'Aideur”
Lorsque vous utilisez lafonctionnalité de l'aideur, vous authenticateWithAppleSupabase devez mettre à jour les valeurs suivantes pour qu'elles correspondent à votre configuration: __CAPGO_KEEP_0__
-
Mise à jour
redirectUrl- Définissez-le sur votre URL de fonction Edge Supabase :const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Mise à jour
clientId- Définissez-le sur votre ID de service Apple :await SocialLogin.initialize({apple: {clientId: isIOS? undefined // iOS uses bundle ID automatically: 'your.service.id.here', // Your Apple Service ID for AndroidredirectUrl: redirectUrl,},});
Consultez la implémentation complète en référence.
Étape 5 : Tester l'intégration
Section intitulée “Étape 5 : Tester l'intégration”-
Construire et exécuter votre application Android
Fenêtre de terminal npx cap sync androidnpx cap run android -
Tester le flux d'authentification
- Cliquez sur le bouton « Connectez-vous avec Apple »
- Vous devriez voir la page OAuth Apple dans un navigateur
- Après avoir authentifié, vous devriez être redirigé vers votre application
- Vérifiez les journaux de console pour tout erreur
-
Vérifiez le flux
Le flux complet devrait être :
- L'utilisateur appuie sur « Se connecter avec Apple »
- L'application ouvre un navigateur avec OAuth Apple
- L'utilisateur se connecte avec Apple
- Apple redirige vers :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callback - La fonction Edge échange code par des jetons
- La fonction Edge redirige vers :
your-app://path?id_token=...&access_token=... - L'application Android reçoit le lien profond et traite le jeton d'identité
- L'application se connecte à Supabase avec le jeton d'identité
Résolution des problèmes
Section intitulée « Résolution des problèmes »If l'authentification échoue :
- URI de redirection incohérente: Vérifiez l'URL de retour dans le Portail du développeur Apple pour qu'elle corresponde exactement à
APPLE_REDIRECT_URI__CAPGO_KEEP_0__ - Lien profond ne fonctionne pas: Vérifiez que
AndroidManifest.xmlle filtre d'intention correspond à votreBASE_REDIRECT_URL - Secrets manquants: Vérifiez que tous les secrets sont correctement configurés à l'aide de
supabase secrets list - L'échange de jetons échoue: Vérifiez les journaux de la fonction d'angle dans le tableau de bord de Supabase pour obtenir des messages d'erreur détaillés
- L'application ne reçoit pas d'appel de rappel: Assurez-vous que
onNewIntentest correctement implémenté dans MainActivity - Vérifiez le exemple d'application code en référence
Comment ça marche
Sous-section intitulée “Comment ça marche”Sur Android, Apple Sign-In utilise un flux OAuth de redirection :
- Initialisation: Le plugin est initialisé avec votre ID de service et l'URL de redirection de votre serveur
- Flux OAuth: Ouvre un navigateur/une fenêtre personnalisée Chrome avec la page OAuth d'Apple
- Appel de la fin de la session: Apple redirige votre fonction d'edge Supabase avec une autorisation code
- Échange de jeton: La fonction d'edge échange le code pour des jetons à l'aide de l'endpoint de jeton d'Apple
- Redirection de lien profond: La fonction d'edge redirige vers votre application avec le jeton d'identité
- Authentification Supabase: L'application reçoit le jeton et s'authentifie auprès de Supabase
Cette flux est nécessaire car Apple ne fournit pas de support natif Android pour la connexion avec Apple.
Continuez avec Supabase Apple Login sur Android
Si vous utilisezSi vous utilisez Supabase Apple Login sur Android pour planifier l'authentification et les flux de compte, connectez-le avec Utilisation de @capgo/capacitor-social-login pour le capacité native dans Utilisation de @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.