Pour commencer
Créez un nouveau projet Android
Créez un nouveau projet Android pour ce démarrage rapide.Dans Android Studio :
- File → New → New Project
- Sélectionnez le modèle Phone and Tablet → Empty Activity
- Configurez votre projet :
- Nom :
Auth0-Android-Sample - Nom du package :
com.auth0.samples.android - Langage : Kotlin
- Minimum SDK : API 24 (Android 7.0)
- Langage de configuration de build : Kotlin DSL
- Nom :
- Cliquez sur Finish
Ajouter la trousse de développement logiciel (SDK) Auth0 à l’aide de Gradle
Ajoutez la Trousse de développement logiciel (SDK) Auth0 pour Android à votre projet à l’aide de Gradle.Mettez à jour le fichier Ajoutez l’autorisation Internet à
build.gradle.kts de votre application :app/build.gradle.kts
AndroidManifest.xml :app/src/main/AndroidManifest.xml
Configurez votre application Auth0
Ensuite, vous devez créer une nouvelle application dans votre tenant Auth0 et ajouter la configuration à votre projet Android.Commencez par préparer votre fichier URL de déconnexion autorisées :Remplacez
app/src/main/res/values/strings.xml avec des valeurs d’exemple :app/src/main/res/values/strings.xml
- Accédez à l’Auth0 Dashboard
- Cliquez sur Applications > Applications > Create Application
- Dans la fenêtre contextuelle, saisissez un nom pour votre application, sélectionnez
Nativecomme type d’application, puis cliquez sur Create. - Passez à l’onglet Settings sur la page des détails de l’application.
- Remplacez
{yourDomain}etYOUR_AUTH0_CLIENT_IDdans le fichierstrings.xmlpar les valeurs Domain et Client ID depuis l’Auth0 Dashboard.
{yourDomain} par votre véritable domaine Auth0 (par exemple, dev-abc123.us.auth0.com).Les URL de redirection autorisées sont une mesure de sécurité essentielle pour s’assurer que les utilisateurs sont renvoyés en toute sécurité vers votre application après l’authentification. Sans URL correspondante, le processus de connexion échouera et les utilisateurs seront bloqués par une page d’erreur Auth0 au lieu d’accéder à votre application.Les URL de déconnexion autorisées sont essentielles pour offrir une expérience utilisateur fluide lors de la déconnexion. Sans URL correspondante, les utilisateurs ne seront pas redirigés vers votre application après la déconnexion et resteront sur une page Auth0 générique.Le schéma d’URL inclut votre nom de package (
com.auth0.samples.android) pour s’assurer que le callback est dirigé vers votre application.Initialiser la trousse de développement logiciel Auth0 (SDK)
Créez une instance Auth0 dans votre Activity pour communiquer avec Auth0.Dans votre
MainActivity.kt :MainActivity.kt
Implémenter la connexion et la déconnexion
Implémentez la connexion : Utilisez Implémentez la déconnexion : Utilisez
WebAuthProvider pour lancer la page Universal Login.Ajoutez ces méthodes à votre MainActivity :- Rappel Kotlin
- Coroutine
MainActivity.kt
WebAuthProvider pour effacer la session de l’utilisateur.- Rappel Kotlin
- Coroutine
MainActivity.kt
Les méthodes
login() et logout() doivent être appelées lorsque l’utilisateur appuie sur les boutons correspondants dans votre interface utilisateur. Le code utilise this (qui fait référence à l’Activity) comme paramètre de contexte, ce qui est requis pour que WebAuthProvider puisse ouvrir des Chrome Custom Tabs et gérer le flux d’authentification.Point de contrôleVous devriez maintenant disposer d’une expérience de connexion Auth0 entièrement fonctionnelle sur votre appareil Android ou votre émulateur. L’application utilise Chrome Custom Tabs pour une authentification sécurisée et enregistre automatiquement les identifiants.
Dépannage et fonctionnalités avancées
Problèmes courants et solutions
Problèmes courants et solutions
L’onglet Chrome personnalisé ne redirige pas vers l’application
Solutions :- Vérifiez que Allowed Callback URLs dans Auth0 Dashboard correspondent exactement à votre
applicationId - Vérifiez que les espaces réservés du manifeste dans
build.gradle.ktssont corrects - Assurez-vous que les URL HTTPS et celles avec un schéma personnalisé sont configurées
- Nettoyez et reconstruisez : Build → Clean Project → Rebuild Project
L’application se bloque : « Auth0 domain not found »
Correctif :- Vérifiez que les valeurs
com_auth0_domainetcom_auth0_client_idsont correctes - Assurez-vous qu’il n’y a aucune faute de frappe dans le format du domaine (ne doit pas inclure
https://)
Erreurs de compilation avec les dépendances
Correctif :- Mettez à jour vers la dernière version d’Android Gradle Plugin dans
build.gradle(niveau projet) - Synchronisez le projet : File → Sync Project with Gradle Files
- Effectuez une compilation propre :
./gradlew clean build
Authentification annulée par l’utilisateur
Gérez ce cas correctement dans votre rappel d’erreur :Erreur : aucun navigateur compatible
- Installez Chrome ou un autre navigateur moderne sur votre appareil/émulateur
- Activez les onglets Chrome personnalisés pour une meilleure expérience utilisateur
- Effectuez des tests sur un appareil réel avec Chrome installé
Déploiement en production
Déploiement en production
Préparation pour l’App Store
- Configurez Android App Links pour une authentification fluide
- Testez sur plusieurs versions d’Android et de tailles d’écran
- Implémentez une gestion appropriée des erreurs pour les défaillances réseau
- Ajoutez des règles ProGuard pour la trousse de développement logiciel (SDK) Auth0 si vous utilisez l’obfuscation de code
- Suivez les politiques de Google Play Store pour les flux d’authentification
Considérations de sécurité
- Utilisez
SecureCredentialsManagerpour le stockage des informations d’identification en production - Implémentez le « certificate pinning » pour une sécurité API supplémentaire
- Envisagez d’utiliser Android Keystore pour une protection renforcée des informations d’identification
- Activez l’authentification biométrique pour les opérations sensibles
Intégration Android avancée
Intégration Android avancée
Sécurité renforcée des informations d’identification
Implémentez l’authentification biométrique pour l’accès aux informations d’identification :AuthenticationManager.kt
Portées et audience personnalisées
Demandez des portées et une audience spécifiques pour votre API :AuthenticationManager.kt
Configuration réseau
Gérez la sécurité réseau et le « certificate pinning » :app/src/main/res/xml/network_security_config.xml
AndroidManifest.xml :