FastAPI
TrustCaptcha – Protection anti-bots

Intégration CAPTCHA FastAPI

Intégrez TrustCaptcha dans une path operation FastAPI avec quelques lignes de Python. Stoppez le spam automatisé sur les connexions, inscriptions et formulaires de contact — avec une dépendance Depends() qui s’adapte au style async et typé de FastAPI. 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 endpoint FastAPI. Le widget s’exécute en arrière-plan et ajoute un champ caché tc-verification-token lors de l’envoi, que FastAPI expose via Form(..., alias="tc-verification-token").

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 endpoint FastAPI

Dans votre path operation FastAPI, récupérez le jeton de vérification depuis le formulaire, consultez le résultat via notre bibliothèque Python et décidez si la requête doit être acceptée.

Commencez par installer notre bibliothèque Python TrustCaptcha :

Install
bash
pip install "trustcaptcha>=3.0.0,<4.0.0"

Validez ensuite le jeton dans votre endpoint FastAPI et agissez en fonction du résultat :

main.py
Python
from fastapi import FastAPI, Form, HTTPException
from fastapi.concurrency import run_in_threadpool
from trustcaptcha.trust_captcha import TrustCaptcha

app = FastAPI()

@app.post("/contact")
async def submit(
    email: str = Form(...),
    tc_verification_token: str = Form(..., alias="tc-verification-token"),
):
    trust_captcha = TrustCaptcha("<your_api_key>")
    try:
        result = await run_in_threadpool(trust_captcha.get_verification_result, tc_verification_token)
    except Exception:
        raise HTTPException(status_code=400, detail="CAPTCHA verification failed.")

    if not result.verification_passed or result.score > 0.5:
        raise HTTPException(status_code=400, detail="CAPTCHA verification failed.")

    # CAPTCHA validé — traiter la requête
    return {"status": "ok"}

Besoin d’informations détaillées sur l’intégration CAPTCHA FastAPI ?
Pour des instructions détaillées étape par étape — y compris une dépendance Depends() réutilisable pour les projets avec plusieurs endpoints protégés — veuillez consulter notre documentation.

Lire la documentation

Un autre framework backend que FastAPI ?
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 FastAPI a lieu la vérification CAPTCHA ?
Dans la path operation qui traite la soumission du formulaire — ou, pour plusieurs endpoints protégés, dans une dépendance Depends() personnalisée. Les deux fonctionnent de la même façon : récupérer le jeton depuis un paramètre Form(...), exécuter la vérification, lever HTTPException en cas d’échec.
Comment lire le jeton CAPTCHA depuis un POST de formulaire ?
Déclarez-le comme paramètre de formulaire avec Form(...) et un alias pour le nom avec tiret : tc_verification_token: str = Form(..., alias="tc-verification-token"). FastAPI mappe alors le champ caché tc-verification-token du widget sur votre paramètre Python.
Puis-je partager une seule instance TrustCaptcha entre plusieurs endpoints ?
Oui. Utilisez l’injection de dépendances de FastAPI : déclarez une fonction get_trust_captcha() décorée avec @lru_cache qui retourne une seule instance TrustCaptcha. Injectez-la via Depends(get_trust_captcha) dans vos endpoints ou dans une dépendance verify_trust_captcha.
Pourquoi encapsuler l’appel de vérification dans run_in_threadpool ?
Parce que le SDK Python est synchrone (I/O bloquante). Dans un endpoint async def, l’appel direct bloquerait la boucle d’événements. run_in_threadpool(...) (ou asyncio.to_thread) le délègue à un thread worker pour que les autres requêtes continuent à passer. Dans un endpoint sync def, FastAPI s’en charge automatiquement.
Comment utiliser TrustCaptcha avec un body JSON au lieu d’un POST de formulaire ?
Déclarez le jeton dans votre modèle de requête Pydantic et lisez-le depuis le modèle dans l’endpoint ou la dépendance. L’appel de vérification ne change pas — il fonctionne de la même manière, peu importe comment le jeton est arrivé jusqu’à votre backend.
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 FastAPI avec TrustCaptcha en quelques étapes !

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