Configurer l'environnement de l'application mobile
Dans cette partie, nous allons créer une application Android moderne en utilisant Kotlin et Jetpack Compose pour l'interface utilisateur, qui servira de modèle pour le module suivant, où l'application communiquera avec le backend (que nous avons créé précédemment). Le backend communiquera avec Vonage Verify.
Vue d'ensemble de l'application
L'application suivra ce flux :
- L'utilisateur saisit son numéro de téléphone.
- L'application envoie le numéro de téléphone au backend (
POST /verification). - Si l'authentification silencieuse réussit, l'utilisateur est vérifié.
- En cas d'échec (ou d'indisponibilité), le code SMS est demandé à l'utilisateur.
- L'application envoie le code au backend (
POST /check-code). - L'application affiche le résultat de la vérification.
Se souvenir: L'application Android ne stocke jamais les secrets de Vonage. Elle ne fait qu'appeler votre backend.
Créer le projet Android
Ouvrez Android Studio.
Cliquez sur Nouveau projet → Activité de composition vide.
Utilisez ces paramètres :
- Nom :
Verify2FADemo - Langue : Kotlin
- SDK minimum : API 24 (Android 7.0)
- Nom :
Cliquez sur Finition et attendez que la synchronisation de Gradle soit terminée.
Configurer les dépendances Android
Ouvrir app/build.gradle.kts et ajoutez (ou mettez à jour) les dépendances suivantes.
Cela vaut la peine d'être précisé pour les lecteurs qui ne connaissent pas encore la téléphonie mobile :
Composer des bibliothèques: Construire l'interface utilisateur avec des fonctions Kotlin au lieu de layouts XML (moins de boilerplate, plus facile à suivre dans un tutoriel).
OkHttp: Un client HTTP fiable pour communiquer avec votre backend. (Android ne fournit pas par défaut un "beau" client HTTP moderne).
Gson: Convertit les objets Kotlin/Java ↔ JSON afin que vous n'ayez pas à construire manuellement des chaînes JSON partout.
Coroutines: Les applications Android ne doivent pas bloquer le thread principal. Les coroutines nous permettent de faire du réseautage en arrière-plan et de mettre à jour l'interface utilisateur en toute sécurité.
Après avoir modifié le fichier, cliquez sur Synchroniser maintenant.
Autorisations Internet et réseau local
En AndroidManifest.xmlajoutez ceci à l'intérieur du <manifest> étiquette :
Sans cela, Android bloquera simplement tous les appels réseau sortants.
Si vous appelez un backend par l'intermédiaire d'un http://... (pas HTTPS), Android peut le bloquer en fonction de votre SDK cible / des paramètres de sécurité du réseau.
Pour le développement local, vous pouvez autoriser le trafic en clair en ajoutant ceci à l'option <application> étiquette :
Stocker la configuration du backend dans local.properties
Le codage en dur des URL directement dans les fichiers Kotlin est fragile et peu sûr.
Au lieu de cela, nous stockerons l'URL du backend dans le fichier local.properties, qui est :
- Pas commité dans git
- Spécifique à l'environnement
- Conçu pour une configuration locale
Ouvrir (ou créer) local.properties à la racine du projet Android et ajouter :
Ensuite, nous mettons cette valeur à la disposition de l'application Android via BuildConfig.
En app/build.gradle.kts, ajouter :
Sync Gradle à nouveau. Cela génère :
que nous pouvons utiliser en toute sécurité dans le code Kotlin.
Premiers pas avec l'authentification silencieuse
L'authentification silencieuse est assez difficile à comprendre. Ce tutoriel vous montre comment construire une intégration à partir de zéro avec Nodejs et Kotlin.