Passer au contenu principal
Vous pouvez ajouter des fonctionnalités à votre application native afin de permettre à vos utilisateurs de s’authentifier avec Facebook directement dans l’application. Cela ne nécessite aucune redirection vers un navigateur Web et permet aux applications mobiles de respecter la Politique destinée aux développeurs Facebook, qui exige que les applications mobiles utilisent le SDK Facebook pour Android ou iOS pour l’authentification.
Lors de l’intégration des SDK Facebook, vos applications partageront des données avec Facebook. Assurez-vous de bien comprendre quelles données sont partagées et de les indiquer correctement dans la politique de confidentialité de votre application. Auth0 n’exerce aucun contrôle sur les données qui seront partagées avec Facebook au moyen du SDK.Consultez la page Facebook RGPD pour en savoir plus sur les données recueillies par le SDK Facebook et Facebook Login.

Fonctionnement

Le flux de connexion Facebook natif fonctionne comme suit :
  • Étape 1 : L’application authentifie un utilisateur à l’aide du SDK Facebook et obtient un .
  • Étape 2 : L’application utilise ce Jeton d’accès pour demander un jeton d’accès spécial « Facebook Session Info ».
  • Étape 3 : Utilisez le SDK Facebook pour récupérer le profil de l’utilisateur.
  • Étape 4 : L’application peut ensuite utiliser le jeton « Facebook Session Info » pour s’authentifier auprès d’Auth0.

Prérequis

Avant de configurer la connexion Facebook native pour votre application native avec Auth0, vous devez :
  1. Configurer Facebook en tant que connexion dans Auth0
  2. Utiliser le SDK Facebook approprié dans votre application
  3. Accéder à Auth0 Dashboard > Applications > Applications, puis créer une application dans Auth0 (si ce n’est pas déjà fait).
  4. Au bas de la page des paramètres, sélectionner Afficher les paramètres avancés, puis la vue Paramètres de l’appareil. Sous Connexion sociale native, activer le bouton bascule Activer la connexion avec Facebook.
    Paramètres de la connexion sociale native

Implémentation

Du point de vue de votre application, le processus d’authentification d’un profil utilisateur au moyen de la connexion Facebook native comporte quatre étapes :

Étape 1

L’application authentifie un utilisateur à l’aide du SDK Facebook. Elle obtiendra un jeton d’accès de Facebook.

Étape 2

L’application utilise le Jeton d’accès pour demander un jeton d’accès « Facebook Session Info ». Cette requête ressemblera à l’exemple suivant :
GET https://graph.facebook.com/v5.0/oauth/access_token?grant_type=fb_attenuate_token&client_id=457704041391802&fb_exchange_token=<facebook_access_token>
et la réponse :
{
    "access_token": "XAAGgR4b...1lHWNCpqrAhcpoAZDZD",
    "token_type": "bearer",
    "expires_in": 5183924
}

Étape 3

L’application doit récupérer le profil de l’utilisateur depuis Facebook à l’aide du SDK Facebook, ce qui donnera lieu à une requête semblable à la suivante :
GET https://graph.facebook.com/v5.0/<facebook user id>?access_token=<facebook access token>&fields=email,name

Étape 4

L’application peut ensuite utiliser le jeton d’accès des informations de session et le profil utilisateur Facebook pour s’authentifier auprès d’Auth0 en appelant le point de terminaison /oauth/token d’Auth0 au moyen du flux Token Exchange avec le type de jeton facebook-session-access-token. Si tout se passe bien, Auth0 renverra une réponse d’échange normale, à laquelle s’ajoutera le profil utilisateur. Le profil utilisateur doit être un objet JSON encodé sous forme de chaîne. et la réponse d’Auth0 :
{
    "access_token": "eyJ0eXA..yXQaPLVXg",
    "id_token": "eyJ0.tFE5HPipdOsA",
    "scope": "openid profile email read:appointments",
    "expires_in": 86400,
    "token_type": "Bearer"
}

Profil utilisateur et validation du courriel

Dans l’exemple précédent, vous deviez récupérer le profil utilisateur à partir de Facebook et l’inclure dans l’appel à /oauth/token. Cela s’explique par le fait que le jeton d’accès de session Facebook ne peut pas servir à récupérer directement le profil et que le jeton d’accès Facebook ne peut pas être envoyé directement au serveur, en raison des Apple’s AppStore Review Guidelines. Il doit donc être récupéré côté application et envoyé à Auth0 de cette manière. Comme Auth0 ne peut pas garantir que le profil utilisateur est bien celui renvoyé par Facebook, le champ email_verified sera défini à false.

Déconnexion

Comme l’implémentation de connexion native n’utilise pas les flux standard basés sur le navigateur, les responsables de l’application doivent aussi veiller à gérer correctement la déconnexion. Lorsqu’une application doit effectuer une déconnexion, elle doit aussi révoquer le jeton d’actualisation Auth0.

Pour en savoir plus