Supabase Apple Login sur Android
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Prerequisites
Section intitulée « Prérequis »Cette guide vous aidera à intégrer Apple Sign-In avec l'authentification Supabase sur Android. Il est supposé que vous avez déjà complété :
Étape 1 : Déployer la fonction Edge Backend
Section intitulée « Étape 1 : Déployer la fonction Edge Backend »En premier lieu, nous devons déployer la fonction Edge Supabase qui gérera l'appel de rappel Apple OAuth.
-
Navigatez vers votre répertoire de projet Supabase
Fenêtre de terminal cd your-project/supabase -
Créer la fonction de bord si elle n'existe pas
Fenêtre de terminal supabase functions new apple-signin-callback -
Copier la fonction de bord code
La mise en œuvre complète de la fonction edge est disponible dans le app d'exemple.
- Fonction de bord principale __CAPGO_KEEP_0__
supabase/functions/apple-signin-callback/index.ts- Fonction principale d'edge codesupabase/functions/apple-signin-callback/deno.jsonla bibliothèque pour la signature JWT)joseCopier dans le presse-papier
-
Configure 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 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-callbackIf you cannot find it, you can do the following:
- Ouvrir
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Cliquez sur l'
apple-signin-callbackURL de la fonction pour la copier.
- Ouvrir
É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 Apple Developer avec l'URL de serveur et obtenir toutes les valeurs requises.
-
Follow the Apple Login Android Setup Guide
Terminez le guide de configuration de l'authentification Apple Android à :
- Créez 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éfinissez l'URL de retour dans le Portail des développeurs Apple
Lorsque vous configurez l'URL de retour dans le Portail du développeur Apple (étape 6.9 du guide Apple), utilisez l'URL de la 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 Apple Login Android. Ce guide utilise une URL de serveur de backend personnalisé. Pour l'intégration Supabase, vous devez utilisez l'URL de votre fonction Edge Supabase à la place.
-
Collectez toutes les valeurs requises
Après avoir terminé le guide de configuration Apple, vous devriez avoir :
- : Votre identifiant de l'équipe d'Apple: Votre ID d'équipe Apple Developer
- APPLE_KEY_ID: La clé ID du Portail du développeur Apple
- APPLE_PRIVATE_KEYVotre fichier de clé privée .p8 (doit être encodé en base64)
- ID DE SERVICE ANDROID: Votre identifiant 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 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 en utilisant 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
Section intitulée « Étape 4 : Utilisez l'assistant d'authentification »Now you can use the authentication helper in your app code.
Implémentation
Section intitulée « Implémentation »La mise en œuvre complète est disponible dans le l'application d'exemple's supabaseAuthUtils.ts fichier.
Utilisation de l'Assistant d'Authentification
Section intitulée « Utilisation de l'Assistant d'Authentification »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 fonctionnalité de l'assistant
Mise à jour de la fonction d'aideLors de l'utilisation de la authenticateWithAppleSupabase fonctionnalité de l'assistant, vous devez mettre à jour les valeurs suivantes pour les adapter à votre configuration :
-
Mettre à jour
redirectUrl- Définissez cette valeur sur votre URL de fonction Edge Supabase :const redirectUrl = platform === 'android'? 'https://your-project-ref.supabase.co/functions/v1/apple-signin-callback': undefined; -
Mettre à jour
clientId- Fixez-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,},});
Voir le implémentation complète Étape 5 : Tester l'intégration
Section intitulée « Étape 5 : Tester l'intégration »
Construire et exécuter votre application Android-
Construirez et exécuter votre application Android
Copier dans le presse-papier npx cap sync androidnpx cap run android -
Testez le flux d'authentification
- Cliquez sur le bouton “Se connecter avec Apple”.
- Vous devriez voir la page OAuth Apple dans un navigateur
- Après l'authentification, vous devriez être redirigé vers votre application
- Vérifiez les journaux de console pour toute 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 contre 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é
Aide au dépannage
Résolution de problèmesSi l'authentification échoue :
- L'URI de redirection ne correspond pas: Vérifiez que l'URL de retour dans le Portail des développeurs Apple correspond exactement à
APPLE_REDIRECT_URI: Secret - La liaison profonde ne fonctionne pas: Vérifiez que
AndroidManifest.xmlle filtre d'intention correspond à votreBASE_REDIRECT_URL - Les secrets manquent: Verify all secrets are set correctly using
supabase secrets list - Échange de jeton échoue: Check edge function logs in Supabase Dashboard for detailed error messages
- L'application ne reçoit pas de rappel: Assurez
onNewIntentest correctement mis en œuvre dans MainActivity - Vérifiez le application d'exemple code pour référence
Comment ça marche
Section titled “How It Works”Sur Android, Apple Sign-In utilise un flux de redirection OAuth :
- InitialisationLa plugin est initialisée avec votre ID de service et l'URL de redirection de votre serveur.
- Flux OAuth: Opens a browser/Chrome Custom Tab with Apple’s OAuth page
- Callback de l'arrière-plan: Apple redirige vers votre fonction Edge Supabase avec une autorisation code
- Échange de jetonL'edge function échange le code par des jetons à l'aide de 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 s'authentifie auprès de Supabase
Cette flux est nécessaire car Apple ne fournit pas de support natif Android pour Sign in with Apple.
Continuez avec Supabase Apple Login on Android
Continuez avec Supabase Apple Login sur AndroidIf vous utilisez Supabase Apple Login sur Android pour planifier l'authentification et les flux de compte, connectez-l’à En utilisant @capgo/capacitor-social-login pour la capacité native dans En utilisant @capgo/capacitor-social-login, @capgo/capacitor-connexion-social 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 le détail d'implémentation dans @capgo/capacitor-native-biometric, et Deux facteurs d'authentification pour les détails d'implémentation dans l'authentification à deux facteurs.