2026 : comment tester un jeton invalide avec Chrome Email Verification API ?

Ce guide s’adresse aux développeurs et aux équipes QA qui vérifient le parcours d’inscription de leur propre application. Il détaille des scénarios de refus de jeton, les preuves à recueillir sur l’état du compte et la vérification de la confirmation par courriel en repli.

La documentation de Chrome indique une dernière mise à jour au 5 octobre 2026 et présente Chrome Email Verification API comme une proposition en Origin Trial (documentation officielle sur l’état et le fonctionnement de l’API). Si vous l’essayez dans votre propre application, appliquez cette règle : un jeton absent, invalide ou impossible à vérifier ne prouve pas la maîtrise de l’adresse. Le serveur doit le refuser et laisser fonctionner votre confirmation par courriel habituelle. Pour valider le parcours, contrôlez séparément le résultat du jeton, l’état du compte et la réception du message de repli.

Cet article s’adresse aux développeurs qui intègrent l’essai dans leur propre produit, aux ingénieurs QA qui vérifient l’inscription et aux responsables techniques qui préparent un déploiement contrôlé. Vous devez vous assurer que l’échec de la fonction expérimentale ne contourne pas les exigences de vérification déjà en place.

Dernière mise à jour : 28 octobre 2026. Informations vérifiées à partir de la documentation Chrome Email Verification, du guide officiel de vérification côté serveur et de la proposition WICG. Le protocole évolue : vérifiez ces documents avant une nouvelle campagne de tests et ne traitez pas un comportement non documenté comme une règle stable.

Définir ce que votre test doit prouver

Chrome Email Verification API vise à établir le contrôle d’une adresse dans le contexte d’une session auprès d’un fournisseur de messagerie. Ce signal ne signifie pas que votre application a envoyé un courriel, que le message est arrivé dans une boîte de réception ou que l’utilisateur a ouvert le lien de confirmation. Il s’agit d’événements distincts, à vérifier séparément.

Votre acceptation doit donc répondre à trois questions de fond : le serveur a-t-il refusé ou validé le jeton conformément à votre implémentation ? Le compte est-il resté dans l’état attendu ? Si le jeton a été refusé ou manquait, le parcours de confirmation par courriel existant a-t-il réellement fonctionné ?

Ne concluez pas que la chaîne est sûre à partir d’un code de réponse favorable à l’application. Une page peut afficher une erreur alors que le compte est déjà marqué comme vérifié. À l’inverse, le serveur peut correctement refuser un jeton, mais ne pas envoyer le message de repli. Consignez ces résultats indépendamment.

La documentation côté serveur décrit les contrôles des déclarations, de la liaison de clé et de la signature EVT. La proposition WICG précise le contexte du protocole en cours d’évolution ; elle ne garantit pas un code d’erreur ou un comportement identique dans tous les environnements. Consultez le guide officiel de vérification côté serveur pour confronter vos contrôles aux étapes documentées.

Scénario : aucun EVT n’est fourni

Un parcours qui ne fournit pas de jeton ne doit pas être assimilé à une vérification réussie. Testez l’absence d’EVT séparément d’un jeton mal formé : ce sont deux situations différentes. La documentation indique que le site revient à son processus de confirmation par défaut lorsque le jeton manque ou qu’une étape de validation échoue (documentation de l’API).

Que doit faire l’inscription si Chrome Email Verification API ne renvoie aucun jeton ?

Le serveur doit poursuivre selon la politique d’inscription de votre produit, sans attribuer à l’adresse le statut « vérifiée » sur la base de l’API. Si une confirmation est requise, le compte reste en attente et le courriel habituel prend le relais. Si votre produit autorise un compte non vérifié avec des droits limités, appliquez ces limites sans traiter l’absence de jeton comme une preuve de propriété.

Pour reproduire le cas dans un environnement isolé, utilisez un client de test qui omet le champ EVT, ou un parcours de développement prévu à cet effet. N’intervenez pas sur une requête de production et n’utilisez pas de compte réel. Pendant l’essai, consignez le champ attendu qui manque, la décision du serveur, l’état du compte avant et après la requête, le message présenté à l’utilisateur et le déclenchement éventuel du courriel de confirmation existant.

Refaites l’essai sur un compte de test déjà en attente. Il ne doit pas devenir vérifié à la suite d’une nouvelle requête sans jeton. Votre interface peut annoncer que la confirmation par courriel est nécessaire, mais le contrôle déterminant reste la décision côté serveur. Le texte de la page n’est pas une preuve de sécurité.

Scénario : une déclaration ne correspond pas à la demande

Un EVT peut être présent tout en décrivant un contexte différent de celui de l’inscription en cours. Les déclarations à contrôler comprennent notamment email, aud, nonce, iat et exp. Interprétez-les selon la documentation et les exigences de votre intégration ; ne supposez pas qu’un champ isolé suffit pour accepter le jeton. Le guide officiel décrit les vérifications côté serveur (étapes de validation documentées par Chrome).

Comment vérifier le refus lorsque l’adresse, l’audience, le nonce ou l’expiration ne correspondent pas ?

Préparez un cas de test valide, puis créez des variantes négatives contrôlées, en changeant une attente à la fois : une adresse différente de celle du formulaire, une audience qui ne correspond pas à votre application, un nonce associé à une autre instance du formulaire ou des valeurs temporelles qui ne satisfont pas la politique de validation de votre intégration. N’inventez ni durée de validité ni seuil : appuyez-vous sur les règles effectivement configurées et les documents applicables.

Le test de nonce exige une vérification explicite du lien entre la demande initiale et le jeton présenté. Ouvrez deux formulaires de test dans des contextes distincts, puis vérifiez qu’un jeton associé au premier ne peut pas confirmer l’adresse saisie dans le second. Un simple refus HTTP ne suffit pas : relisez l’enregistrement du compte et confirmez que la bonne adresse est toujours en attente.

Pour chaque variante, conservez aussi un résultat de contrôle positif. Un jeton valide provenant du même environnement doit être traité conformément aux règles prévues ; sans ce contrôle, vous risquez de confondre une détection correcte d’incohérence avec une configuration qui rejette tout. Dans les rapports QA, masquez les adresses et évitez d’y inscrire des données personnelles réelles.

Scénario : la signature ou la liaison de clé échoue

Vérifier qu’un jeton a la forme d’un JWT n’équivaut pas à vérifier sa validité cryptographique. Le parcours décrit par la documentation comprend la validation de la Key Binding JWT et celle de la signature de l’EVT. Si l’un de ces contrôles échoue, votre application ne doit pas considérer l’adresse comme vérifiée. La documentation officielle décrit les étapes ; la proposition WICG apporte le contexte du protocole en évolution.

Comment prouver qu’un échec de signature Key Binding JWT n’a pas confirmé le compte ?

Dans un environnement isolé, utilisez des données préparées pour les tests négatifs : par exemple, une clé de test qui ne correspond pas à la clé attendue ou un jeton modifié de façon à faire échouer le contrôle. Réservez ces manipulations à votre propre application et aux clés que vous êtes autorisé à utiliser. Ne cherchez pas à contourner les contrôles d’un service tiers.

Pour chaque tentative, recueillez la trace de validation, l’identifiant de corrélation de la requête et l’état final du compte. Les journaux doivent indiquer l’étape qui a échoué sans exposer le contenu sensible du jeton ou des clés privées. Si votre système distingue plusieurs catégories d’échec, consignez-les en interne, mais ne présentez pas une erreur particulière comme un code standardisé lorsque les documents ne le définissent pas.

Le test passe si le serveur refuse l’affirmation d’adresse, laisse le compte non vérifié et applique votre politique de repli. Il échoue si l’interface signale une erreur, mais qu’une tâche asynchrone, un traitement secondaire ou une mise à jour antérieure a confirmé le compte. C’est pourquoi la lecture de l’état durable après la requête compte autant que l’observation de la réponse immédiate.

Ne déduisez pas d’un essai le comportement garanti de tous les navigateurs. Vérifiez la propriété de sécurité dans votre application et consignez précisément l’environnement observé.

Scénario : l’émetteur découvert ou la clé attendue ne concorde pas

Testez aussi le lien entre l’émetteur déclaré, les informations découvertes et les clés utilisées pour vérifier le jeton. Dans votre banc d’essai, prévoyez un cas où iss ne correspond pas à l’émetteur découvert, ainsi qu’un cas où les métadonnées ou la clé publique ne permettent pas d’effectuer le contrôle prévu. Votre application doit refuser le jeton et appliquer le parcours de confirmation existant.

Distinguez une incohérence de protocole d’une indisponibilité temporaire d’une dépendance. Une panne réseau ou une erreur lors de la récupération des métadonnées ne prouve pas que le navigateur ou le fournisseur de messagerie a émis un jeton fautif. Consignez le type d’échec et vérifiez que votre politique ne transforme pas silencieusement une dépendance inaccessible en acceptation.

Pour rendre ce scénario reproductible, notez l’environnement, l’émetteur attendu, les informations de découverte utilisées, le résultat obtenu et la décision finale du vérificateur. Gardez un essai de contrôle avec un émetteur et des clés attendus accessibles. Si l’essai négatif et le contrôle échouent tous les deux, examinez d’abord la configuration ou l’environnement plutôt que d’attribuer le résultat à l’incohérence introduite.

N’ajoutez pas au compte rendu une règle sur le nombre de tentatives, la durée de conservation ou la stratégie de rejeu si les documents ne la spécifient pas. Ces décisions relèvent de la conception de votre application. Définissez-les séparément, puis testez-les selon vos exigences.

Décider du parcours à valider

Utilisez ces conditions comme outil de décision avant de déclarer le scénario accepté. Cochez les résultats observés et choisissez le parcours correspondant ; une seule assertion ne valide pas toute la chaîne.

  • [ ] Si le jeton est absent, le serveur ne marque pas l’adresse comme vérifiée. Vous validez le scénario uniquement si le compte reste en attente et si le courriel de confirmation existant est déclenché lorsque votre politique l’exige. Sinon, corrigez le traitement de l’absence avant de poursuivre.
  • [ ] Si une déclaration ne correspond pas au formulaire, le jeton est refusé et l’adresse enregistrée reste cohérente avec la demande. Si le compte devient vérifié ou si l’adresse est remplacée par celle du jeton inattendu, le scénario échoue.
  • [ ] Si la signature EVT ou la Key Binding JWT échoue, la trace indique un refus, le compte reste non vérifié et votre politique de repli est appliquée. Si seul l’écran affiche une erreur, vérifiez l’état durable du compte avant de conclure.
  • [ ] Si l’émetteur, la découverte ou la clé ne concorde pas, le jeton est refusé dans le scénario d’incohérence. Si le contrôle positif échoue aussi, isolez d’abord un problème de configuration ou de dépendance.
  • [ ] Si le jeton passe les contrôles, vérifiez le parcours positif dans l’environnement de test ; ne remplacez pas par ce résultat les essais négatifs précédents.
  • [ ] Si le courriel de repli est reçu, contrôlez son destinataire, son contenu, son environnement et l’effet du lien sur l’état du compte. La réception seule ne valide pas la transition de vérification.

La preuve d’acceptation repose donc sur trois résultats documentés séparément : la décision du vérificateur, l’état durable du compte et le résultat du courriel de confirmation de remplacement. Un statut HTTP, une bannière dans l’interface ou une ligne de journal ne prouve pas à lui seul ces trois éléments.

Scénario : vérifier réellement le courriel de repli

Le courriel de confirmation est une étape fonctionnelle à part entière. Déclenchez le repli uniquement dans votre environnement de test et envoyez le message à une adresse que vous contrôlez. Vérifiez son contenu, l’environnement ciblé et le lien. Ouvrez ensuite ce lien dans le contexte prévu, puis confirmez que l’application fait évoluer le compte vers l’état attendu. Le fait de pouvoir lire un message de test prouve seulement qu’il est arrivé dans cette boîte ; cela ne garantit pas la livraison en production.

Comment valider la confirmation par courriel après le refus de Chrome Email Verification API ?

Commencez par déclencher un cas négatif identifié, puis observez si le flux de remplacement s’exécute. Vérifiez que le message utilise le bon environnement : un essai local ou de préproduction ne doit pas envoyer vers un domaine de production. Contrôlez le destinataire, le lien et son rattachement au compte de test. Après ouverture du lien, relisez l’état du compte. Répétez enfin le parcours sans utiliser le lien : le compte doit rester non vérifié tant que la règle de confirmation de votre application n’est pas satisfaite.

Un message reçu trop tôt, envoyé à la mauvaise boîte ou contenant un lien d’un autre environnement constitue un échec, même si une notification apparaît. Ajoutez aux preuves l’horodatage de l’événement, l’identifiant de corrélation et le résultat de l’action sur le compte. Évitez d’enregistrer le lien complet dans un système de suivi largement accessible : il peut permettre d’effectuer la confirmation.

Choisissez une adresse de test adaptée à la durée de votre procédure et aux besoins de réception. Le guide sur le cycle de vie d’une adresse de test vous aide à prendre en compte le fait qu’une boîte puisse ne plus être disponible lorsque vous vérifiez le résultat. Si vous devez retrouver les messages dans une boîte que vous consultez déjà, examinez les options de réception et de transfert. Ces choix concernent la réception de votre courriel de test ; ils ne déterminent pas si votre serveur accepte l’EVT.

Préserver la séparation entre test et données réelles

Réalisez ces essais avec des comptes, des adresses et des clés de test. Évitez de vous servir de l’adresse personnelle d’un collègue pour simuler un destinataire : les journaux, captures d’écran et liens de confirmation peuvent exposer des informations ou rester accessibles après le test. Cette précaution vaut aussi pour les comptes générés par les tests automatisés. Définissez une règle de nettoyage et assurez-vous que les comptes de test ne reçoivent pas de droits réels.

Votre rapport devrait préciser le scénario exécuté, la condition qui devait provoquer le refus, la décision du serveur, l’état observé du compte et le résultat du courriel de repli. Masquez les adresses et n’incluez pas les jetons complets. Pour encadrer le traitement des données d’essai, consultez cette liste de contrôle de confidentialité pour l’inscription.

Pour un essai ponctuel où vous devez seulement lire un message de confirmation, une adresse temporaire peut limiter l’exposition de votre boîte principale et empêcher les messages de test ultérieurs de s’y accumuler. MyTempBox peut constituer une option si vous avez besoin d’une boîte de réception de test sans inscription. Choisissez-la seulement si sa disponibilité convient à votre procédure ; ne présumez pas qu’une adresse temporaire sera acceptée par tous les environnements ni que le message arrivera nécessairement. Pour un compte important, une récupération future ou des échanges durables, privilégiez une adresse que vous contrôlez à long terme. Seule la vérification conjointe du refus côté serveur, de l’état du compte et du courriel de repli permet de conclure que votre test est validé.

Vous avez confirmé qu’il s’agit d’une tâche courte et recommençable ?

Ouvrez une boîte de réception temporaire et utilisez une seule adresse pour terminer la tâche. Si elle devient ensuite durable, migrez d’abord l’adresse e-mail avant de fermer cette session de réception.

Créer une boîte de réception jetable