Fastify
TrustCaptcha – Protection anti-bots

Intégration CAPTCHA Fastify

Intégrez TrustCaptcha dans une route Fastify ou un hook preHandler avec quelques lignes de TypeScript. Stoppez le spam automatisé sur les connexions, inscriptions et formulaires de contact — sans casser votre validation par schéma ni le plugin formbody. Hébergé dans l’UE, conforme RGPD et sans énigmes visuelles.

Démarrage rapide

Comment fonctionne l'intégration

1. Créer un CAPTCHA

Créez un compte utilisateur ou connectez-vous avec un compte existant. Ensuite, créez un nouveau CAPTCHA ou sélectionnez-en un existant. Si vous ne savez pas encore si TrustCaptcha vous convient, essayez notre service CAPTCHA sans risque pendant 14 jours gratuitement.

Sur la page d’aperçu du CAPTCHA, vous trouverez toutes les informations importantes, comme la clé de site et la clé de licence, et vous pouvez aussi y créer votre API key. Autorisez simplement vos sites web à utiliser votre CAPTCHA en les ajoutant à la liste des domaines autorisés dans les règles de sécurité du CAPTCHA.

Début du formulaire de création du CAPTCHA.
Règles de sécurité CAPTCHA d’un CAPTCHA de démonstration.

2. Ajouter le widget CAPTCHA dans votre formulaire

Placez le widget TrustCaptcha dans le formulaire HTML servi par votre route Fastify. Le widget s’exécute en arrière-plan et ajoute un champ caché tc-verification-token lors de l’envoi, qui arrive sur request.body comme tout autre input.

contact.html
HTML
<script type="module" src="https://cdn.trustcomponent.com/trustcaptcha/3.0.x/trustcaptcha.esm.min.js"></script>

<form method="post" action="/contact">
    <input type="email" name="email" required>
    <trustcaptcha-component sitekey="<your_site_key>"></trustcaptcha-component>
    <button type="submit">Send</button>
</form>

Le widget CAPTCHA s’affichera ensuite dans votre formulaire :

CAPTCHA terminé

Besoin d’informations détaillées sur l’intégration du widget CAPTCHA ?
Pour la référence complète du widget — y compris thèmes, langues, design personnalisé et plus encore — veuillez consulter notre documentation.

Lire la documentation

3. Valider le jeton dans votre route Fastify

Dans votre route handler Fastify, récupérez le jeton de vérification depuis request.body, consultez le résultat via notre bibliothèque Node.js et décidez si la requête doit être acceptée.

Commencez par installer notre bibliothèque Node.js TrustCaptcha avec le plugin formbody de Fastify :

Install
bash
npm i fastify @fastify/formbody @trustcomponent/trustcaptcha-nodejs

Validez ensuite le jeton dans votre route Fastify et agissez en fonction du résultat :

server.ts
TypeScript
import Fastify from "fastify";
import formbody from "@fastify/formbody";
import { TrustCaptcha } from "@trustcomponent/trustcaptcha-nodejs";

const fastify = Fastify();
await fastify.register(formbody);

fastify.post("/contact", async (request, reply) => {
  const body = request.body as Record<string, string>;
  const token = body["tc-verification-token"] ?? "";

  try {
    const result = await TrustCaptcha.getVerificationResult("<your_api_key>", token);
    if (!result.verificationPassed || result.score > 0.5) {
      return reply.code(400).send("CAPTCHA verification failed.");
    }
  } catch {
    return reply.code(400).send("CAPTCHA verification failed.");
  }

  // CAPTCHA validé — traiter la requête
  return reply.send("Thanks!");
});

Besoin d’informations détaillées sur l’intégration CAPTCHA Fastify ?
Pour des instructions détaillées étape par étape — y compris un hook preHandler réutilisable pour les projets avec plusieurs routes protégées — veuillez consulter notre documentation.

Lire la documentation

Un autre framework backend que Fastify ?
Si vous utilisez un autre framework, choisissez la recette correspondante ici. Si votre framework n’est pas listé, vos développeurs peuvent intégrer la vérification eux-mêmes à l’aide de notre documentation ou contacter notre équipe support pour demander une intégration préconstruite.

Actix Web
ASP.NET Core
Axum
Django
Echo
Express
FastAPI
Fastify
Fiber
Flask
Gin
Hapi
Laravel
Micronaut
NestJS
Next.js
Quarkus
Ruby on Rails
Sinatra
Spring Boot
Symfony

4. Félicitations 🎉

Vous êtes maintenant protégé par TrustCaptcha — félicitations !

CAPTCHA terminé

FAQs

Où dans une application Fastify a lieu la vérification CAPTCHA ?
Dans le route handler qui reçoit la soumission du formulaire — ou, pour plusieurs routes protégées, dans un hook preHandler (l’équivalent Fastify d’un middleware par route). Le jeton CAPTCHA arrive sur request.body sous le nom par défaut « tc-verification-token ».
Ai-je besoin d’un plugin spécial pour recevoir les soumissions de formulaire ?
Oui. Fastify parse le JSON automatiquement, mais pour application/x-www-form-urlencoded (envoyé par un formulaire HTML standard), enregistrez le plugin @fastify/formbody. Sans lui, request.body est undefined pour les soumissions de formulaire et la vérification CAPTCHA n’a rien à lire.
Comment partager la clé d’API et le SDK entre les routes ?
Créez une instance TrustCaptcha unique au démarrage, attachez-la via fastify.decorate("trustCaptcha", instance), et lisez-la depuis request.server.trustCaptcha dans n’importe quelle route ou hook. Cela évite de reconstruire le SDK à chaque requête.
La validation par schéma JSON de Fastify supprime-t-elle le jeton CAPTCHA ?
C’est possible. Si vous avez déclaré un schéma de body strict pour la route, ajoutez tc-verification-token dans le schéma (ou définissez additionalProperties: true) afin que le jeton ne soit pas supprimé avant que votre hook ou handler ne le lise.
Puis-je restreindre le hook CAPTCHA à un groupe de routes ?
Oui. Enregistrez le preHandler globalement à l’intérieur d’un plugin fastify.register(...) limité à un préfixe de route (par exemple /forms), de sorte que chaque route sous ce préfixe exécute la vérification automatiquement.
Vous perdez des prospects à cause des CAPTCHAs ?

TrustCaptcha bloque le spam et les bots, pas vos clients. Sans puzzle, conforme au RGPD, hébergé en UE.

Début du CAPTCHA
CAPTCHA terminé
UX sans énigmes
Fonctionne en arrière-plan pendant que les visiteurs saisissent leurs informations — ainsi davantage de personnes terminent vos formulaires et moins abandonnent.
Compatible RGPD
Hébergé dans l’UE et conçu dans une logique privacy-first : pas de cookies, transmission chiffrée, nettoyage automatique — avec des ressources juridiques prêtes à l’emploi.
Sécurité multicouche
Une protection adaptative et un scoring de risque intelligent stoppent les abus très tôt — même en cas de pic d’attaques.
Contrôle total
Ajustez la sensibilité, définissez des listes d’autorisation/refus et utilisez le géoblocage — c’est vous qui décidez du niveau de strictesse de la vérification.

Protégez votre application Fastify avec TrustCaptcha en quelques étapes !

  • Hébergé en UE & conforme RGPD
  • Aucun puzzle
  • Essai gratuit de 14 jours