Avant de commencer
- Configurer le SDK Facebook Login - Installez et configurez le Facebook Login SDK for Android. Créez une application Facebook sur developers.facebook.com. Une fois cette étape terminée, Facebook Login devrait fonctionner dans votre application.
- Configurer Auth0 pour Facebook Native - Configurez votre application Auth0 pour utiliser Facebook Native Sign In. Consultez Add Facebook Login to Native Apps.
Premiers pas
Configurer les autorisations de Facebook Login
Mettez à jour le bouton Facebook Login dans votre activité 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 également une fonction de rappel pour démarrer le flux d’authentification Auth0.MainActivity.kt
L’autorisation
email est facultative — l’utilisateur doit consentir à la partager. Le courriel renvoyé par Facebook sera indiqué comme non vérifié dans le profil de l’utilisateur Auth0.Installer et configurer le SDK Auth0
Ajoutez le SDK Android Auth0 à votre projet et configurez les identifiants de votre application.Ajoutez la dépendance dans Synchronisez Gradle après avoir ajouté la dépendance.Ajoutez vos identifiants Auth0 dans Initialisez le SDK Auth0 dans votre activité :
app/build.gradle.kts :app/build.gradle.kts
strings.xml :Accédez à la section Applications de l’Auth0 Dashboard et sélectionnez l’application dans laquelle vous avez activé Facebook Native Sign In. Copiez les valeurs Domaine et ID client.app/src/main/res/values/strings.xml
MainActivity.kt
Si votre application n’utilise pas Auth0 Web Authentication, supprimez l’activité inutilisée du fichier Si vous prévoyez prendre en charge Web Authentication, consultez Authentification par Universal Login.
AndroidManifest.xml pour éviter les erreurs de Manifest Placeholder :app/src/main/AndroidManifest.xml
Récupérer le jeton d’accès de la session Facebook
Une fois la connexion à Facebook réussie, récupérez un jeton d’accès de session à partir de l’API Facebook. Auth0 a besoin de ce jeton pour vérifier l’identité de l’utilisateur côté backend.Effectuez une requête GET vers le point de terminaison
/oauth/access_token de Facebook à l’aide de la classe GraphRequest :MainActivity.kt
Les paramètres de requête requis sont :
grant_type:fb_attenuate_tokenfb_exchange_token: le jeton d’accès de Facebook Loginclient_id: l’ID de votre application Facebook (déjà présent dans votre application grâce à la configuration du SDK Facebook)
Récupérer le profil Facebook de l’utilisateur
Récupérez le profil de l’utilisateur à partir de Facebook. Auth0 utilise ces données pour créer ou mettre à jour le profil Auth0 de l’utilisateur.
MainActivity.kt
Échanger des jetons contre des identifiants Auth0
Utilisez le jeton de session et le profil de l’utilisateur des étapes précédentes pour vous authentifier auprès d’Auth0 et obtenir des jetons Auth0.Appelez
loginWithNativeSocialToken sur le AuthenticationAPIClient, en fournissant le jeton de session ainsi que le type de jeton de sujet Facebook :MainActivity.kt
Le type du jeton sujet
http://auth0.com/oauth/token-type/facebook-info-session-access-token indique à Auth0 d’utiliser la connexion Facebook native pour l’authentification.Point de vérificationVous devriez maintenant pouvoir vous authentifier nativement avec Facebook. Si l’application Facebook est installée sur l’appareil, l’authentification se fait directement dans l’application — aucun navigateur n’est nécessaire.
Dépannage et fonctions avancées
Problèmes courants et solutions
Problèmes courants et solutions
L’échange de jeton échoue avec une erreur d’authentification
Solutions :- Vérifiez que Facebook Native Sign In est activé pour votre application Auth0 dans l’Auth0 Dashboard
- Vérifiez que l’identifiant d’application Facebook dans votre
strings.xmlcorrespond à celui de la console développeur Facebook - Confirmez que la valeur du type de jeton du sujet correspond exactement à :
http://auth0.com/oauth/token-type/facebook-info-session-access-token - Assurez-vous 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
R.string.facebook_app_idest correctement défini dans votrestrings.xml - Assurez-vous que
fb_exchange_tokencorrespond à la chaîne de jeton brute de l’objet FacebookAccessToken - Vérifiez que votre application Facebook n’est pas en mode développement si vous testez avec des utilisateurs non administrateurs
AuthenticationException : « Connexion introuvable »
Correctif :- Accédez à Auth0 Dashboard → Authentication → Social
- Vérifiez que Sign in with Facebook est activé
- Confirmez que Facebook Native Social Login est activé dans les paramètres de la connexion
- Vérifiez que l’application Auth0 est associée à la connexion Facebook
Il manque des champs du profil utilisateur
- Confirmez que
public_profileetemailsont indiqués dans l’appel àsetPermissions - Il se peut que l’utilisateur ait refusé l’autorisation
email— gérez correctement l’absence de courriel - Vérifiez que les mêmes champs se trouvent dans le bundle
fieldsdefetchUserProfile
Considérations pour la production
Considérations pour la production
Bonnes pratiques de sécurité
- Désactivez la journalisation en production : supprimez
enableLogging = trueduDefaultClientou activez-le conditionnellement — il consigne le trafic réseau - Stockage sécurisé des jetons : utilisez
SecureCredentialsManagerpour stocker les jetons Auth0 dans l’Android Keystore - Jetons d’actualisation : demandez le scope
offline_accesset mettez en œuvre l’actualisation des jetons pour maintenir les sessions
Configuration de l’application Facebook
- Faites passer votre application Facebook du mode développement à Live avant la mise en production
- Ajoutez l’empreinte SHA-1 de la clé de votre application à la console développeur Facebook
- Consultez les exigences de la Data Policy de Facebook pour les applications qui utilisent le SDK Login
Google Play Store
- Respectez les politiques de Google Play pour les applications qui utilisent une authentification tierce
- Incluez Facebook Login dans la politique de confidentialité de votre application
Prochaines étapes
Configurer d’autres fournisseurs d’identité
Ajoutez Google, Apple et d’autres fournisseurs de connexion avec les réseaux sociaux
Protection contre les attaques
Protégez-vous contre les attaques par force brute et les attaques de robots
Actions
Personnalisez les flux d’authentification avec du code sans serveur
Référence du SDK Auth0 pour Android
Consultez la documentation complète du SDK Auth0 pour Android