Skip to main content
Vous pouvez ajouter des fonctionnalités à votre application native afin de permettre à vos utilisateurs de s’authentifier avec Facebook de façon native, directement dans l’application. Cela ne nécessite aucune redirection par navigateur Web et permet aux applications mobiles de respecter la Politique pour les développeurs Facebook, qui exige que les applications mobiles utilisent le SDK Facebook pour Android ou iOS pour s’authentifier.
Lors de l’intégration aux SDK Facebook, vos applications partageront des données avec Facebook. Assurez-vous de bien comprendre quelles données sont partagées et d’en faire correctement état 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 GDPR pour en savoir plus sur les données recueillies par le SDK Facebook et Facebook Login.

Comment ça fonctionne

Le flux Native Facebook login fonctionne comme suit :
  • Étape 1 : L’application authentifie un utilisateur au moyen du Facebook SDK et obtient un .
  • Étape 2 : L’application utilise ensuite ce jeton d’accès pour demander un Facebook Session Info Access Token spécial.
  • Étape 3 : Utilisez le Facebook SDK 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 Native Facebook login pour votre application native avec Auth0, vous devez :
  1. Configurer Facebook comme connexion Auth0
  2. Utiliser le Facebook SDK approprié dans votre application
  3. Accédez à Auth0 Dashboard > Applications > Applications, puis créez une application dans Auth0 (si ce n’est pas déjà fait).
  4. Au bas de la page Settings, sélectionnez Show Advanced Settings, puis la vue Device Settings. Sous Native Social Login, activez la bascule Enable Sign In with Facebook.
    Paramètres de Native Social Login

Mise en œuvre

Du point de vue de votre application, l’authentification d’un profil utilisateur à l’aide de Native Facebook login se déroule en quatre étapes :

Étape 1

L’application authentifie un utilisateur au moyen du Facebook SDK. Elle obtiendra un jeton d’accès auprès de Facebook.

Étape 2

L’application utilise le jeton d’accès pour demander un Facebook Session Info Access Token. Cette requête ressemblera à ceci :
et la réponse :

Étape 3

L’application doit récupérer le profil utilisateur à partir de Facebook à l’aide du Facebook SDK, ce qui aboutira à une requête semblable à celle-ci :

Étape 4

L’application peut ensuite utiliser le jeton d’accès associé aux informations de session et le profil Facebook de l’utilisateur pour s’authentifier auprès d’Auth0 en envoyant une requête au point de terminaison /oauth/token d’Auth0 dans le 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, avec en plus le profil utilisateur. Le profil utilisateur doit être un objet JSON encodé sous forme de chaîne. et la réponse d’Auth0 :

Profil utilisateur et validation de l’adresse courriel

Dans l’exemple précédent, vous deviez récupérer le profil utilisateur à partir de Facebook et l’inclure dans la requête envoyée à /oauth/token. Cela s’explique par le fait que le jeton d’accès de session Facebook ne peut pas être utilisé pour 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é client et envoyé à Auth0 de cette manière. Comme Auth0 ne peut pas garantir que le profil utilisateur est bien celui renvoyé par Facebook, il définira le champ email_verified à false.

Logout

Comme la mise en œuvre de la connexion native n’utilise pas les flux standards dans le navigateur, les propriétaires d’application doivent aussi veiller à effectuer la déconnexion correctement. Lorsqu’une application doit effectuer une déconnexion, elle devrait aussi révoquer le jeton d’actualisation Auth0.

Pour aller plus loin