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 terminé, Facebook Login devrait fonctionner dans votre application.
- Configurer Auth0 pour Facebook Native - Configurez votre application Auth0 pour utiliser Facebook Native Sign In. Consultez Ajouter Facebook Login aux applications natives.
Commencer
1
Configurer les permissions de Facebook Login
Mettez à jour le bouton Facebook Login dans votre Activity pour demander les bonnes permissions.Votre application prend déjà en charge Facebook Login, mais pour obtenir un profil utilisateur détaillé, vous devez demander les permissions
public_profile et email. Vous ajouterez aussi un callback pour lancer le flux d’authentification Auth0.MainActivity.kt
La permission
email est facultative — l’utilisateur doit consentir à son partage. L’adresse courriel renvoyée par Facebook sera marquée comme non vérifiée dans le profil utilisateur Auth0.2
Installer et configurer le SDK Auth0
Ajoutez le SDK Android d’Auth0 à votre projet et configurez les identifiants de votre application.Ajoutez la dépendance à Synchronisez Gradle après avoir ajouté la dépendance.Ajoutez vos identifiants Auth0 à Initialisez le SDK Auth0 dans votre Activity :
app/build.gradle.kts :app/build.gradle.kts
strings.xml :Accédez à la section Applications du Auth0 Dashboard et sélectionnez l’application dans laquelle vous avez activé Facebook Native Sign In. Copiez les valeurs Domain et Client ID.app/src/main/res/values/strings.xml
MainActivity.kt
Si votre application n’utilise pas Auth0 Web Authentication, supprimez l’activité inutilisée de Si vous comptez prendre en charge Web Authentication, consultez l’authentification par Universal Login.
AndroidManifest.xml pour éviter les erreurs d’espace réservé dans le Manifest :app/src/main/AndroidManifest.xml
3
Récupérer le jeton d’accès de session Facebook
Une fois l’authentification avec Facebook Login réussie, récupérez un jeton d’accès de session auprès de l’API Facebook. Auth0 a besoin de ce jeton pour vérifier l’identité de l’utilisateur côté serveur.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 provenant de Facebook Loginclient_id: votre App ID Facebook (déjà dans votre application lors de la configuration du Facebook SDK)
4
Récupérer le profil utilisateur Facebook
Récupérez le profil de l’utilisateur sur Facebook. Auth0 utilise ces données pour créer ou mettre à jour le profil Auth0 de l’utilisateur.
MainActivity.kt
5
Obtenir des identifiants Auth0 en échange de jetons
Utilisez le jeton de session et le profil utilisateur des étapes précédentes pour vous authentifier auprès d’Auth0 et obtenir des jetons Auth0.Appelez
loginWithNativeSocialToken sur AuthenticationAPIClient en lui transmettant le jeton de session avec le type de subject token Facebook :MainActivity.kt
Le type de jeton de sujet
http://auth0.com/oauth/token-type/facebook-info-session-access-token indique à Auth0 d’utiliser la connexion Facebook native pour l’authentification.6
Tout réunir
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 → obtenir des jetons Auth0 en échange.MainActivity.kt
VérificationVous devriez maintenant pouvoir vous authentifier avec Facebook de façon native. 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
Problèmes courants et solutions
Problèmes courants et solutions
L’échange de jetons échoue avec une erreur d’authentication
Solutions :- Vérifiez que Facebook Native Sign In est activé pour votre application Auth0 dans le Dashboard
- Vérifiez que le Facebook App ID dans votre
strings.xmlcorrespond à celui de la console de développement Facebook - Confirmez que la chaîne du type de subject token 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 faites des tests avec des utilisateurs non administrateurs
AuthenticationException : “Connection not found”
Correctif :- Allez à 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
Certains champs du profil utilisateur sont manquants
- Confirmez que
public_profileetemailfigurent dans l’appelsetPermissions - Il se peut que l’utilisateur ait refusé la permission
email— gérez les adresses courriel nulles correctement - Vérifiez que les mêmes champs figurent dans le bundle
fieldsdefetchUserProfile
Considérations pour la production
Considérations pour la production
Meilleures pratiques de sécurité
- Désactivez la journalisation en production : supprimez
enableLogging = trueduDefaultClientou limitez-le selon l’environnement — cela consigne le trafic réseau - Stockage sécurisé des jetons : utilisez
SecureCredentialsManagerpour stocker les jetons Auth0 dans l’Android Keystore - Refresh tokens : demandez la portée
offline_accesset implémentez l’actualisation des jetons pour maintenir les sessions
Configuration de l’application Facebook
- Faites passer votre application Facebook de Development Mode à Live avant son lancement
- Ajoutez l’empreinte de clé SHA-1 de votre application dans la console de développement 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 bots
Actions
Personnalisez les flux d’authentification avec du code sans serveur
Référence du SDK Android
Consultez la documentation complète du SDK Android d’Auth0