Skip to main content

OTP réel (SMS Kannel) et vérification bancaire réelle (UWM) sur les formulaires publics

Équipe Digitalisation UTB
Frontend, Backend & Backoffice

Les formulaires de demande de prêt scolaire et d'ouverture de compte envoient désormais un vrai SMS avec un code aléatoire, au lieu du code 000000 codé en dur documenté jusqu'ici. La vérification du numéro de compte auprès de la banque est elle aussi devenue réelle, via un middleware bancaire — avec un repli mock à surveiller de près.

Ce qui est réel maintenant​

  • Backend générique POST /api/otp/send / POST /api/otp/verify (détail complet), table otp_codes : code à 6 chiffres aléatoire, expiration 5 minutes, usage unique.
  • SMS envoyé via une passerelle Kannel réelle (avec un mode mock disponible via SMS_MOCK_ENABLED).
  • Vérification bancaire (backend/src/services/sba.service.js) : appel réel à un middleware "UWM" (UTB Web Middleware), qui fait le pont vers Sopra Banking Amplitude. Une identité client réelle peut désormais être renvoyée pour l'auto-remplissage du formulaire de prêt scolaire.
  • Les deux formulaires appellent ce backend au lieu de simuler côté client.

Le piège : un repli mock silencieux si UWM est indisponible​

Si le middleware UWM est injoignable (panne, mauvaise configuration), sba.service.js retombe automatiquement sur deux comptes de test codés en dur (12345678901, 00000000000) — sans erreur visible côté utilisateur, seulement un console.warn côté serveur. Une panne d'UWM en production peut donc passer inaperçue, et un test réussi avec l'un de ces deux comptes ne prouve jamais qu'UWM a réellement répondu.

Autres pièges à surveiller​

  • Pas de limiteur de débit dédié sur /api/otp/* (contrairement à /api/tracking) — un code à 6 chiffres reste bruteforçable en pratique.
  • Un échec réseau vers Kannel renvoie quand même un succès côté appelant (comportement volontaire, pour ne pas bloquer l'utilisateur) — donc un OTP peut sembler "envoyé" sans SMS réellement parti.

Pages de doc à jour​

OTP, SMS & vérification SBA (nouvelle page), Demande de prêt scolaire, Ouverture de compte, Dette technique connue, Bugs & failles actives connues, Authentification & 2FA.