Skip to main content

Avant de commencer

Effectuez les étapes préalables suivantes avant de suivre ce Quickstart :
  1. Configurer le SDK Facebook Login - Installez et configurez le SDK Facebook Login pour iOS. Créez une application Facebook sur developers.facebook.com. Une fois terminé, Facebook Login devrait fonctionner dans votre application.
  2. Configurer Auth0 pour Facebook Native - Configurez votre application Auth0 pour utiliser Facebook Native Sign In. Consultez Add Facebook Login to Native Apps.

Pour commencer

1

Configurer les autorisations de Facebook Login

Mettez à jour le bouton Facebook Login dans votre ViewController pour demander les bonnes autorisations.Votre application prend déjà en charge Facebook Login, mais pour obtenir un profil utilisateur plus complet, vous devez demander les autorisations public_profile et email. Vous ajouterez aussi une fonction de rappel du délégué pour lancer le flux d’authentification Auth0.
ViewController.swift
La permission email est facultative — l’utilisateur doit consentir à son partage. L’adresse courriel retournée par Facebook sera marquée comme non vérifiée sur le profil utilisateur Auth0.
2

Installer et configurer le SDK Auth0

Ajoutez le SDK Auth0.swift à votre projet et configurez les identifiants de votre application.Ajoutez Auth0.swift avec Swift Package Manager :
  1. Dans Xcode, accédez à FichierAjouter des dépendances de package…
  2. Entrez l’URL du package : https://github.com/auth0/Auth0.swift
  3. Sélectionnez la version la plus récente, puis cliquez sur Ajouter le package
Ajoutez vos identifiants Auth0 à Auth0.plist :Accédez à la section Applications de l’Auth0 Dashboard et sélectionnez l’application pour laquelle vous avez activé Facebook Native Sign In. Copiez les valeurs Domain et Client ID.Créez un nouveau fichier de liste de propriétés nommé Auth0.plist dans votre projet, puis ajoutez ce qui suit :
Auth0.plist
Faites glisser Auth0.plist dans Xcode et assurez-vous que Add to target est coché pour la cible de votre application.
Le SDK Auth0.swift lit automatiquement les identifiants dans Auth0.plist, donc aucun code d’initialisation supplémentaire n’est nécessaire.
3

Récupérer le jeton d’accès de la session Facebook

Une fois Facebook Login réussi, récupérez un jeton d’accès de session à partir de l’API Facebook. Auth0 exige ce jeton pour vérifier l’identité de l’utilisateur dans le backend.Faites une requête GET vers le point de terminaison /oauth/access_token de Facebook à l’aide de la classe GraphRequest :
ViewController.swift
Les paramètres de requête requis sont :
  • grant_type : fb_attenuate_token
  • fb_exchange_token : la chaîne du jeton provenant de l’AccessToken Facebook
  • client_id : votre ID d’application Facebook (déjà dans votre Info.plist lors de la configuration du Facebook SDK)
4

Récupérer le profil Facebook de l’utilisateur

Récupérez le profil de l’utilisateur sur Facebook. Auth0 utilise ces données pour créer ou mettre à jour le profil de l’utilisateur dans Auth0.
ViewController.swift
Le paramètre fields correspond directement aux autorisations Facebook demandées. Il suffit de demander first_name, last_name et email pour qu’Auth0 crée un profil utilisateur complet.
5

Échanger des jetons contre des identifiants Auth0

Utilisez le jeton de session et le profil utilisateur des étapes précédentes pour vous authentifier avec Auth0 et obtenir des jetons Auth0.Appelez login(facebookSessionAccessToken:profile:audience:scope:) dans le client d’authentification Auth0 :
ViewController.swift
En interne, Auth0.swift utilise le type de jeton http://auth0.com/oauth/token-type/facebook-info-session-access-token pour diriger la requête vers la connexion native Facebook.
6

Tout rassembler

Complétez la méthode performLogin pour enchaîner les trois étapes : récupérer le jeton de session → récupérer le profil utilisateur → procéder à l’échange contre des jetons Auth0.
ViewController.swift
Gardez les constantes (permissions Facebook, scopes Auth0) en haut de votre classe pour éviter les chaînes codées en dur. Pensez à utiliser async/await pour simplifier les callbacks imbriqués si vous ciblez iOS 15+.
VérificationVous devriez maintenant pouvoir vous authentifier avec Facebook en mode natif. Si l’application Facebook est installée sur l’appareil, l’authentification se fait directement dans l’application — sans navigateur.

Dépannage et options avancées

L’échange de jeton échoue avec une erreur d’authentification

Solutions :
  1. Vérifiez que Facebook Native Sign In est activé pour votre application Auth0 dans le Dashboard
  2. Vérifiez que FacebookAppID dans Info.plist correspond à l’App ID dans la console de développement Facebook
  3. Assurez-vous que le fichier Auth0.plist est ajouté à la bonne cible dans Xcode
  4. Confirmez que le jeton d’accès Facebook n’a pas expiré avant d’appeler performLogin

La requête de jeton de session renvoie une erreur

Correctif :
  • Vérifiez que FacebookAppID est correctement défini dans Info.plist
  • Assurez-vous que fb_exchange_token est bien la chaîne brute du jeton (accessToken.tokenString)
  • Vérifiez que votre application Facebook n’est pas en Development Mode si vous testez avec des utilisateurs non administrateurs

AuthenticationError : “Connection not found”

Correctif :
  1. Accédez à Auth0 Dashboard → AuthenticationSocial
  2. Vérifiez que Sign in with Facebook est activé
  3. Confirmez que Facebook Native Social Login est activé dans les paramètres de la connexion
  4. Vérifiez que l’application Auth0 est associée à la connexion Facebook

Certains champs du profil utilisateur sont manquants

  • Confirmez que "email" et "public_profile" sont inclus dans le tableau fbLoginButton.permissions
  • Il se peut que l’utilisateur ait refusé la permission email — gérez ce cas correctement si le courriel est nil
  • Vérifiez que les mêmes champs figurent dans la requête request.parameters["fields"] dans fetchUserProfile

Auth0.plist introuvable

  • Assurez-vous que le nom du fichier est exactement Auth0.plist (respect de la casse)
  • Dans Xcode, vérifiez le Target Membership du fichier — il doit être inclus dans la cible de votre application

Bonnes pratiques de sécurité

  • Stockage sécurisé des jetons : utilisez le CredentialsManager d’Auth0.swift pour stocker les jetons de manière sécuritaire dans le Keychain iOS
  • Refresh tokens : demandez le scope offline_access et utilisez CredentialsManager pour actualiser silencieusement les jetons expirés
  • Protection biométrique : activez l’authentification biométrique sur CredentialsManager pour protéger les informations d’identification stockées

Configuration de l’application Facebook

  • Faites passer votre application Facebook de Development Mode à Live avant de la publier dans l’App Store
  • Assurez-vous que le Bundle ID de votre application est enregistré dans la console de développement Facebook
  • Consultez les exigences de la Data Policy de Facebook pour les applications qui utilisent le Login SDK

Soumission à l’App Store

  • Incluez Facebook Login dans la politique de confidentialité de votre application et dans l’étiquette de confidentialité de l’App Store
  • Gérez les cas où l’utilisateur refuse la permission email — votre application devrait fonctionner sans celle-ci
  • Testez sur un appareil réel avant la soumission; le Facebook SDK se comporte différemment dans le simulateur
Si vous ciblez iOS 15+, vous pouvez utiliser async/await pour écrire un code plus clair, sans imbrication :
ViewController.swift
Encapsulez chaque méthode basée sur des callbacks dans un withCheckedThrowingContinuation pour faire le pont vers async/await.

Prochaines étapes

Configurer d’autres fournisseurs d’identité

Ajoutez Google, Apple et d’autres fournisseurs de connexion sociale

Protection contre les attaques

Protégez-vous contre les attaques par force brute et les bots

Actions

Personnalisez les flux d’authentification avec du code sans serveur

Référence du SDK iOS

Explorez la documentation complète du SDK Auth0.swift