Logo de FwrdFwrdTélécharger dans l’App Store

Codes OTP par SMS dans la CI et l’automatisation QA avec un iPhone

Par Fwrd · · Mis à jour le

Pour faire entrer les codes à usage unique reçus par SMS dans la CI ou l’automatisation QA, placez la carte SIM qui reçoit les codes dans un iPhone d’équipe, et laissez une automatisation Message de Raccourcis remettre chaque SMS de code à Fwrd, qui le publie sur votre propre webhook HTTPS en JSON. Votre tâche CI lit ensuite le code le plus récent sur ce point de terminaison et le saisit dans l’écran de connexion.

Ce qu’il vous faut : un iPhone sous iOS 26 ou version ultérieure avec la carte SIM du numéro qui reçoit les codes, l’app Raccourcis (déjà présente sur le téléphone), Fwrd, et une adresse HTTPS publique que votre CI peut lire, comme une route de préproduction (staging) ou un workflow n8n. Fwrd refuse les adresses IP et les noms en .local ou .internal, et n’envoie aucun en-tête d’authentification : mettez donc un long secret dans l’adresse.

Pourquoi les codes SMS sont-ils difficiles à automatiser ?

Les codes SMS bloquent la CI parce qu’ils arrivent sur un téléphone, pas sur votre runner, tant que rien ne porte chaque SMS à un endroit que votre pipeline peut lire.

La plupart des équipes qui écrivent ces vérifications automatisées n’ont que leur propre téléphone pour recevoir le code. Un iPhone d’équipe avec Fwrd transforme ce téléphone en quelque chose que votre pipeline peut lire.

Quand un iPhone d’équipe convient-il ?

Il convient quand le code doit arriver sur un numéro d’opérateur précis : un service tiers auquel vous vous connectez, un compte de préproduction déjà lié au téléphone de l’entreprise, ou un parcours qui traite les numéros différemment selon leur type. La documentation Lookup de Twilio (consultée le 17 octobre 2026) montre que les apps peuvent distinguer un numéro mobile d’un numéro VoIP non fixe, que Twilio décrit comme un numéro virtuel obtenu en ligne. Une carte SIM dans un iPhone d’équipe est un vrai numéro d’opérateur : le code arrive donc comme pour un client.

Le compromis : un téléphone ne donne qu’un numéro, et il doit rester allumé et connecté. Les sections suivantes couvrent les deux points.

Comment envoyer les codes SMS d’un iPhone vers votre CI

Ajoutez dans Fwrd une destination Webhook qui ne garde que les codes, puis une automatisation Message qui remet chaque SMS de code à Fwrd. Le guide du webhook couvre en détail le côté point de terminaison.

  1. Ajoutez un webhook dans Fwrd. Ouvrez Fwrd, touchez + et choisissez Webhook. Collez l’adresse HTTPS complète de votre point de terminaison dans le champ Configuration, touchez Send Test Message (Envoyer un message test) pour que votre point de terminaison voie les champs, puis enregistrez avec la coche.

  2. Ne gardez que les codes. Dans la même destination, choisissez Only Some Texts (Certains SMS seulement) sous Which Texts (Quels SMS) et activez Looks Like a Code (Ressemble à un code), qui garde les SMS contenant un code de 4 à 8 chiffres. C’est une seule condition : cela fonctionne donc avec l’offre gratuite.

  3. Créez une automatisation Message. Sur iOS 27, ouvrez Raccourcis, touchez Bibliothèque, puis Automatisation, puis +. Si vous voyez Décrire un raccourci, touchez Modifier. Touchez Automatisation, puis Message, remplacez Expéditeur par Message et saisissez code, ou le mot qu’emploient les SMS de votre service. Sur iOS 26, ouvrez l’onglet Automatisation, touchez +, choisissez Message et saisissez-le sous Le message contient.

  4. Faites-la s’exécuter sans demander. Sur iOS 27, touchez la flèche à côté du déclencheur et vérifiez que Confirmer avant l’exécution est désactivé. Sous ⓘ, puis Confidentialité, vérifiez qu’Autoriser l’exécution en mode verrouillé est activé. Sur iOS 26, choisissez Exécuter immédiatement, puis touchez Suivant et Créer un raccourci.

  5. Ajoutez l’action de Fwrd. Recherchez Forward et ajoutez Forward Message to All Destinations (Transférer le message vers toutes les destinations). Réglez son champ Message sur Entrée de raccourci (sur iOS 26, Entrée de raccourci, puis Message). Revenez en arrière pour enregistrer (OK sur iOS 26).

  6. Lisez le code dans la CI. Faites enregistrer par votre point de terminaison chaque corps reçu avec son heure d’arrivée. Une fois que votre exécution a demandé un code, interrogez régulièrement le point de terminaison pour obtenir le SMS le plus récent reçu depuis, et extrayez les chiffres avec une expression régulière.

  7. C’est tout : les nouveaux SMS de code arrivent désormais tout seuls sur votre point de terminaison, avec l’iPhone verrouillé ou déverrouillé.

Que reçoit le point de terminaison ?

Une requête POST avec un corps JSON qui contient le SMS tel qu’il est arrivé, à la fois dans content et dans text. Il n’y a pas d’horodatage : enregistrez l’heure de votre côté.

{
  "content": "Your verification code is 482913",
  "text": "Your verification code is 482913"
}

Chaque tentative pour un même SMS porte le même en-tête Idempotency-Key, ce qui vous permet d’écarter les doublons. Si un envoi expire, reçoit un 429 ou un 5xx, ou perd sa connexion, Fwrd réessaie, jusqu’à deux fois. Toute réponse 2xx en moins de 15 secondes compte comme remise, et les redirections sont refusées. Activez Include Who Sent It (Inclure l’expéditeur) dans les Réglages de Fwrd et choisissez Sender (Expéditeur) dans l’action de Fwrd : le corps reçoit alors aussi un champ sender, pratique quand plusieurs services envoient des SMS au même numéro.

Ce que cette configuration ne peut pas faire

  • Un numéro ne sert qu’une exécution à la fois. Des tâches parallèles qui demandent des codes sur le même numéro peuvent lire le code d’une autre : mettez l’étape de connexion en file d’attente, ou associez chaque code à l’exécution qui l’a demandé.
  • L’offre gratuite couvre 15 codes par mois. Au-delà, les codes s’arrêtent jusqu’au mois suivant, et les pipelines chargés y arrivent vite ; Fwrd Pro supprime la limite pour $4.99 par mois ou $29.99 par an aux États-Unis (prix en dollars américains, USD). L’App Store affiche le prix dans votre propre devise.
  • Réception uniquement. Fwrd ne peut pas envoyer de SMS depuis l’iPhone pour votre CI.
  • Le téléphone reste allumé et connecté à internet. Après un redémarrage, le transfert attend que quelqu’un le déverrouille une fois, et un iPhone qui n’est pas déverrouillé pendant 3 jours redémarre de lui-même. Gardez-le chargé, à portée de quelqu’un.
  • L’action de Fwrd atteint toutes les destinations actives. Si le même téléphone transfère aussi ailleurs, utilisez plutôt Forward Message to Destination (Transférer le message vers la destination) et choisissez le webhook.
  • Seuls les nouveaux SMS. Les codes arrivés avant la création de l’automatisation ne sont pas envoyés.

Pour les personnes qui ont besoin des codes, plutôt que des pipelines, partager les codes 2FA avec votre équipe dans Slack décrit cette configuration.

Questions sur les codes SMS dans l’automatisation

Selenium ou Playwright peuvent-ils lire directement un code SMS ?

Non. L’automatisation du navigateur ne voit pas les messages d’un téléphone. Il faut d’abord sortir le SMS du téléphone, par exemple avec une automatisation Raccourcis où Fwrd le publie sur un webhook que votre script interroge.

Les codes passent-ils par les serveurs de Fwrd ?

Non. Fwrd n’a ni compte ni serveur à lui ; chaque SMS va directement de l’iPhone à votre point de terminaison HTTPS, et l’adresse reste dans le trousseau de l’iPhone.

Cela fonctionne-t-il avec les expéditeurs à numéro court ?

Oui. L’automatisation se fonde sur ce que dit le SMS, pas sur son expéditeur : les codes venant de numéros courts absents de vos contacts correspondent quand même à un mot comme code.

Puis-je utiliser un workflow n8n comme point de terminaison ?

Oui. Ajoutez un nœud Webhook réglé sur POST, utilisez son URL de production et publiez le workflow, sinon il ne répond pas. Envoyer les SMS de l’iPhone vers Zapier, Make ou n8n donne les étapes.

Vous voulez les codes SMS là où votre CI peut les lire ?

Fwrd publie chaque SMS concerné d’un iPhone d’équipe sur votre propre webhook HTTPS, en JSON, sans compte et sans serveur Fwrd entre les deux. Commencez avec 15 transferts gratuits par mois.

Gratuit jusqu’à 15 transferts par mois. Pro supprime les limites de transferts et de filtres et ajoute une liste Never Forward (Ne jamais transférer), pour $4.99 par mois ou $29.99 par an aux États-Unis (USD), avec un essai gratuit de 7 jours sur l’abonnement annuel pour les clients éligibles. L’App Store affiche le prix dans votre propre devise.

Télécharger dans l’App Store

iPhone · iOS 26 ou version ultérieure