Supabase Apple Login sur Android
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Prérequis
Section intitulée « Prérequis »Cette guide vous aidera à intégrer l'authentification Apple Sign-In avec Supabase Authentication sur Android. Il est supposé que vous avez déjà complété :
Étape 1 : Déployez la fonction Edge Backend
Titre de la section « É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 OAuth d’Apple.
-
Naviguez jusqu'à votre répertoire de projet Supabase
Fenêtre de terminal cd your-project/supabase -
Créer la fonction Edge Fenêtre de terminal
Copier dans le presse-papiers supabase functions new apple-signin-callback -
Copy the edge function code
La mise en œuvre complète de la fonction d'edge est disponible dans l' application d'exemple.
Copiez les fichiers suivants dans votre projet :
supabase/functions/apple-signin-callback/index.ts- Fonction d'edge principale codesupabase/functions/apple-signin-callback/deno.json- Carte d'importation pour les dépendances (inclutjosebibliothèque pour la signature JWT)
-
Configurer la vérification JWT
L'endpoint de rappel OAuth Apple doit être public (aucune authentification requise) car Apple le redirigera. 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 votre URL de 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 faire les choses suivantes :
- Ouvrez
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Cliquez sur le
apple-signin-callbackURL de la fonction pour la copier.
- Ouvrez
Étape 2 : Configurer le Portail du développeur Apple
Section intitulée “Étape 2 : Configurer le Portail du développeur Apple”Nous devons maintenant configurer le Portail du développeur Apple avec l'URL de serveur et obtenir toutes les valeurs requises.
-
Suivez le Guide de configuration de l'authentification Apple pour Android
Terminez la procédure Guide de configuration Apple Login Android à :
- Créer un ID de service
- Générer une clé privée (fichier .p8)
- Obtenir votre ID d'équipe et votre ID de clé
- 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 fonction Edge Supabase :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportant : Utilisez l'URL de la fonction Edge Supabase
N'oubliez pas de Guide de configuration 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.
-
Collectez toutes les valeurs requises
Après avoir terminé le guide de configuration Apple, vous devriez avoir :
- ID DÉVELOPPEUR APPLE: Votre identifiant d'équipe Apple Developer
- APPLE_KEY_ID: L'ID de la clé provenant du portail Apple Developer
- APPLE_PRIVATE_KEY: Votre fichier de clé privée .p8 (doit être encodé en base64)
- ANDROID_SERVICE_ID: Votre ID de service Apple (par exemple,
com.example.app.service) - BASE_REDIRECT_URL: Votre URL de lien profond (par exemple,
capgo-demo-app://path)
Étape 3 : Définir les secrets de 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 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 la sortie entière (ce n'est qu'une seule longue chaîne).
-
Définir des 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 le tableau de bord de votre projet Supabase
- Naviguer vers Fonctions de bord Edge → Paramètres → Secrets
- Ajoutez chaque variable de secret avec sa valeur
Étape 4 : Utilisez l'Aideur d'Authentification
Section intitulée “Étape 4 : Utilisez l'Aideur d'Authentification”Vous pouvez maintenant utiliser l'aideur d'authentification dans votre application code.
Mise en œuvre
Section intitulée “Mise en œuvre”La mise en œuvre complète est disponible dans le fichier de l'application d'exemple supabaseAuthUtils.ts Utilisation de l'Aideur d'Authentification
Section intitulée “Utilisation de l'Aideur d'Authentification”
Section intitulée “Section intitulée “Using the 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 d'aide
Section intitulée “Mettre à jour la fonction d'aide”Lorsque vous utilisez la authenticateWithAppleSupabase fonction d'aide, vous devez mettre à jour les valeurs suivantes pour qu'elles correspondent à votre configuration :
-
Mettre à jour
redirectUrl- Définissez cette valeur sur l'URL de votre fonction Edge Supabase :const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Mettre à jour
clientId- Définissez cette valeur 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,},});
Voir la mise en œuvre complète en tant que 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
- Appuyez sur le bouton « Se connecter avec Apple »
- Vous devriez voir la page d'authentification Apple dans un navigateur
- Après avoir authentifié, vous devriez être redirigé vers votre application
- Vérifiez les journaux de console pour toute erreur
-
Vérifier le flux
Le flux complet devrait être :
- L'utilisateur appuie sur « Se connecter avec Apple »
- L'application ouvre un navigateur avec l'authentification Apple
- L'utilisateur s'authentifie 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 s'inscrit auprès de Supabase avec le jeton d'identité
Résolution des problèmes
Section intitulée “Résolution des problèmes”Si l'authentification échoue :
- URI de redirection non conforme: Vérifiez l'URL de retour dans le portail Apple Developer pour qu'elle corresponde exactement avec
APPLE_REDIRECT_URIsecret - Le lien profond ne fonctionne pas: Vérifiez que
AndroidManifest.xmlintent filter correspond à votreBASE_REDIRECT_URL - Manque de secrets: Vérifiez que tous les secrets sont correctement configurés à l'aide de
supabase secrets list - Échec de l'échange de jeton: Vérifiez les journaux de fonction d'angle dans le tableau de bord Supabase pour les messages d'erreur détaillés
- L'application ne reçoit pas de rappel: Assurez-vous que
onNewIntentest correctement implémenté dans MainActivity - Examinez l'application d'exemple __CAPGO_KEEP_0__ example app code for reference
Comment ça marche
Titre de la section « Comment ça marche »Sur Android, Apple Sign-In utilise un flux de redirection OAuth :
- Initialisation : Le plugin est initialisé avec votre ID de service et l'URL de redirection de votre serveur
- Flux OAuth : Ouvre une fenêtre de navigateur ou une fenêtre personnalisée de Chrome avec la page OAuth d'Apple
- Appel de la fonctionnalité backend : Apple redirige vers votre fonctionnalité Edge Supabase avec une autorisation code
- Échange de jetons : La fonctionnalité Edge échange la code contre des jetons en utilisant l'endpoint de jetons d'Apple
- Redirection de lien profond: La fonction edge redirige vers votre application avec le jeton d'identité
- Authentification Supabase: L'application reçoit le jeton et se connecte à Supabase
Cette flux est nécessaire car Apple ne fournit pas de support natif Android pour Sign in with Apple.
Continuez de Supabase Apple Login on Android
Titre de la section “Continuez de Supabase Apple Login on Android”Si vous utilisez Supabase Apple Login on 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 les détails d'implémentation dans @capgo/capacitor-login-social @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-biométrique-native pour les détails d'implémentation dans @capgo/capacitor-biométrique-native, et L'authentification à deux facteurs pour les détails d'implémentation dans L'authentification à deux facteurs