Supabase Apple Login sur Android
Copiez un prompt de configuration avec les étapes d'installation et la guide Markdown complète pour ce plugin.
Prérequis
Sous-titre « 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éployer la fonction Edge Backend
Sous-titre « É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.
-
Naviguez jusqu'à 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 -
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 :.
- Fonction de bord principale __CAPGO_KEEP_0__
supabase/functions/apple-signin-callback/index.ts- Main edge function codesupabase/functions/apple-signin-callback/deno.json- Carte d'importation pour les dépendances (inclutjose- Bibliothèque pour la signature JWT)
-
- Configurez la vérification JWT
- L'endpoint de rappel OAuth Apple doit être public (aucune authentification requise) car Apple le redirigera vers lui. Mettez à jour votre
supabase/config.toml- fichier :[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" -
- Fenêtre de terminal
Supabase supabase functions deploy apple-signin-callback -
Obtenez votre URL de fonction
Après le déploiement, vous obtiendrez une URL comme celle-ci :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackSi vous ne pouvez pas la trouver, vous pouvez faire les choses suivantes :
- Ouvrir
https://supabase.com/dashboard/project/YOUR_PROJECT_REF/functions - Cliquez sur la
apple-signin-callbackURL de fonction pour la copier.
- Ouvrir
Étape 2 : Configurez le portail Apple Developer
Titre de la section « Étape 2 : Configurez le portail Apple Developer »Nous devons maintenant configurer le portail Apple Developer avec l'URL de serveur et récupérer toutes les valeurs requises.
-
Suivez le guide de configuration de l'authentification Apple Android
Terminez le guide de configuration de l'authentification Apple Android à :
- Créez un ID de service
- Générez une clé privée (fichier .p8)
- Obtenez votre ID d'équipe et votre ID de clé
- Configurez 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 votre URL de fonction Supabase Edge :
https://your-project-ref.supabase.co/functions/v1/apple-signin-callbackImportant : Utilisez l'URL de fonction Supabase Edge
N'Utilisez PAS l'URL de redirection provenant du guide de configuration de l'authentification Apple AndroidCela utilise une URL de serveur backend personnalisé. Pour l'intégration Supabase, vous devez utiliser votre URL de fonction Supabase Edge à la place.
-
Collectez toutes les valeurs requises
Après avoir terminé la guide de configuration d'Apple, vous devriez avoir :
- APPLE_TEAM_ID: Votre identifiant de l'équipe de développeur Apple
- APPLE_KEY_ID: L'ID de clé provenant du portail du développeur Apple
- APPLE_PRIVATE_KEY: Votre fichier de clé privée .p8 (doit être encodé en base64)
- ANDROID_SERVICE_ID: Votre identifiant de service Apple (par exemple,
com.example.app.service) - BASE_REDIRECT_URL: Votre URL de redirection profonde (par exemple,
capgo-demo-app://path)
Étape 3 : Définir les secrets Supabase
Titre de la section « Étape 3 : Définir les secrets 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 l'ensemble de la sortie (c'est 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
Section intitulée « Étape 4 : Utilisez l'assistant d'authentification »Vous pouvez maintenant utiliser l'assistant 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 »
Copier dans le presse-papierimport { 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 »
Lors de l'utilisation del'assistant d'authentification 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 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- 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 le 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
- Cliquez sur le bouton « Connectez-vous 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 l'authentification OAuth 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 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é
Résolution des problèmes
Résolution des problèmesSi l'authentification échoue :
- Mauvaise correspondance de l'URI de redirection : Vérifiez que l'URL de retour dans le portail du développeur Apple correspond exactement à
APPLE_REDIRECT_URIsecret - Lien profond non fonctionnel : Vérifiez que
AndroidManifest.xmlle filtre d'intention correspond à votreBASE_REDIRECT_URL - Manque de secrets : Vérifiez que tous les secrets sont correctement configurés à l'aide de
supabase secrets list - Échange de jeton échoue: Vérifiez les journaux de fonction de bord dans le tableau de bord de Supabase pour obtenir des messages d'erreur détaillés
- L'application n'a pas reçu le callback: Assurez-vous que
onNewIntentest correctement implémenté dans MainActivity - Examinez l'application d'exemple __CAPGO_KEEP_0__ example app code Comment ça marche
context : Page/zone : Éditeur Capgo / produit de construction native dans le cloud. Rôle : En-tête de section ou de page. Message clé `native_build_how_it_works_title` (Titre de la construction native Comment ça marche). | Page/zone : Section de la page du support premium. Rôle : Étiquette de navigation ou élément de navigation court. Vu dans : page premium-support.astro. Message clé `ps_how_it_works` (Ps Comment ça marche). | Page/zone : Page de mise à jour en direct. Rôle : En-tête de section ou de page. Vu dans : page live-update.astro. Message clé `live_update_how_it_works_title` (Titre de la mise à jour en direct Comment ça marche).
Section intitulée « 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.
- OAuth Flow: Ouvre un navigateur/une fenêtre personnalisée de Chrome avec la page d'authentification d'Apple.
- Backend Callback: Apple redirige vers votre fonction Edge Supabase avec une autorisation code
- Token Exchange: La fonction Edge échange la code pour des jetons à l'aide de l'endpoint de jetons d'Apple
- Deep Link Redirect: La fonction Edge redirige vers votre application avec le jeton d'identité
- Supabase Authentication: L'application reçoit le jeton et s'authentifie auprès de Supabase
Cette opération est nécessaire car Apple ne fournit pas de support natif Android pour la connexion avec Apple.
Continuez de Supabase Apple Login sur Android
Titre de la section “Continuez de Supabase Apple Login sur Android”Si vous utilisez Supabase Apple Login sur Android pour planifier l'authentification et les flux de compte, connectez-l’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-biometric pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.