Connexion avec le backend
Intégration de l'interface utilisateur avec les points de terminaison du backend
Dans le module précédent, nous avons construit l'interface utilisateur et une petite machine à états (VerifyUiState). Nous allons maintenant connecter cette interface utilisateur à notre backend.
L'idée principale est que l'application Android n'appellera jamais Vonage directement. Elle n'appellera que votre backend :
POST /verificationpour lancer le processus de vérificationPOST /check-codepour valider un code (code SMS pour l'instant)POST /nextpour forcer le canal de repli (SMS) immédiatement (afin de ne pas attendre ~20 secondes)
Commençons par la mise en œuvre !
Démarrer la vérification (POST /verification)
Lorsque l'utilisateur tape sur Début de la vérification:
L'application envoie le numéro de téléphone à
/verificationLe backend renvoie :
request_id(toujours)check_url(facultatif, utilisé ultérieurement pour l'authentification silencieuse)
Dans cette section, nous allons ignorer l'authentification silencieuse et demander immédiatement le retour aux SMS en appelant
/nextL'interface utilisateur passe à l'écran SMS (
EnterSms(requestId))
Soumettre le code SMS (POST /check-code)
Lorsque l'utilisateur tape sur Soumettre le code:
- L'application envoie
{ request_id, code }à/check-code - Le backend répond par
{ verified: true/false } - L'interface utilisateur indique un succès ou un "code invalide".
Forcer le repli rapidement (POST /next)
Appel /next est facultatif du point de vue de la "correction" (Vonage peut se rabattre automatiquement), mais il est très utile pour l'interface utilisateur :
Si nous savons déjà que nous ne compléterons pas l'authentification silencieuse (ou que nous ne l'avons pas encore mise en œuvre), l'appel de l'option /next évite d'attendre le délai d'expiration de l'authentification silencieuse.
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.