SoukepAuth

Flux

  1. L'app appelle createVerificationSession(storage, config) → obtient un token avec une session pending (15 minutes par défaut).
  2. buildWhatsAppVerificationLink(token, config) construit un lien https://wa.me/<numéro>?text=... affiché sur un bouton "Vérifier avec WhatsApp".
  3. Le client clique, WhatsApp s'ouvre avec le message déjà rempli, il appuie sur Envoyer.
  4. Le webhook Meta reçoit le message entrant et appelle resolveVerificationsFromWebhook(storage, payload) : le token est retrouvé dans le texte, la session passe à verified avec phone = numéro de l'expéditeur — jamais saisi par le client.
  5. L'app appelle getVerificationSession(storage, token) (poll ou SSE) jusqu'à voir status === "verified".
  6. Optionnel : si shouldSendConfirmationReply(config) est vrai, renvoyer un message de confirmation dans la fenêtre de service ouverte à l'étape 4.

Pourquoi aucun OTP n'est nécessaire

WhatsApp garantit que le champ from d'un message entrant est bien le numéro réel de l'expéditeur. Recevoir le message contenant le token suffit donc comme preuve de possession — inutile de renvoyer un code à vérifier en retour.