FastAPI
TrustCaptcha – Bot-Schutz

FastAPI CAPTCHA-Integration

Binden Sie TrustCaptcha mit wenigen Zeilen Python in eine FastAPI-Path-Operation ein. Stoppen Sie botgetriebenen Spam in Logins, Registrierungen und Kontaktformularen – mit einer Depends()-basierten Dependency, die zum async-, typisierten Stil von FastAPI passt. EU-gehostet, DSGVO-konform und ohne Bilderrätsel.

Schnellstart

So funktioniert die Integration

1. CAPTCHA erstellen

Erstellen Sie ein Benutzerkonto oder melden Sie sich mit einem bestehenden Konto an. Anschließend erstellen Sie ein neues CAPTCHA oder wählen Sie ein bereits vorhandenes aus. Wenn Sie sich nicht sicher sind, ob TrustCaptcha das Richtige für Sie ist, können Sie unseren CAPTCHA-Service 14 Tage lang kostenlos und ohne Risiko testen.

Auf der CAPTCHA-Übersichtsseite finden Sie alle wichtigen Informationen wie den site-key und den license-key, und Sie können dort auch Ihren API-Key erstellen. Ermöglichen Sie Ihren Websites den Zugriff auf Ihr CAPTCHA, indem Sie diese einfach zur Liste der autorisierten Domains in den CAPTCHA-Sicherheitsregeln hinzufügen.

Start des Formulars zur Erstellung eines CAPTCHA.
CAPTCHA-Sicherheitsregeln eines Demo-CAPTCHAs.

2. CAPTCHA-Widget in Ihr Formular einbauen

Binden Sie das TrustCaptcha-Widget in das HTML-Formular ein, das Ihr FastAPI-Endpoint ausliefert. Das Widget läuft im Hintergrund und fügt beim Absenden ein verstecktes Feld tc-verification-token hinzu, das FastAPI über Form(..., alias="tc-verification-token") zur Verfügung stellt.

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>

Das CAPTCHA-Widget wird anschließend in Ihrem Formular angezeigt:

CAPTCHA abgeschlossen

Detaillierte Informationen zur CAPTCHA-Widget-Integration?
Für die vollständige Widget-Referenz – inklusive Themes, Sprachen, Custom Design und mehr – lesen Sie bitte unsere Dokumentation.

Dokumentation lesen

3. Token in Ihrem FastAPI-Endpoint validieren

Holen Sie in Ihrer FastAPI-Path-Operation den Verifikationstoken aus dem Formular, rufen Sie das Ergebnis über unsere Python-Library ab und entscheiden Sie, ob die Anfrage akzeptiert werden soll.

Installieren Sie zunächst unsere TrustCaptcha-Python-Library:

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

Validieren Sie dann den Token in Ihrem FastAPI-Endpoint und reagieren Sie auf das Ergebnis:

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 bestanden — Anfrage verarbeiten
    return {"status": "ok"}

Detaillierte Informationen zur FastAPI-CAPTCHA-Integration?
Für die vollständige Schritt-für-Schritt-Anleitung – inklusive einer wiederverwendbaren Depends()-Dependency für Projekte mit mehreren geschützten Endpunkten – lesen Sie bitte unsere Dokumentation.

Dokumentation lesen

Anderes Backend-Framework statt FastAPI?
Wenn Sie ein anderes Framework nutzen, wählen Sie hier das passende Rezept aus. Ist Ihr Framework nicht aufgeführt, können Ihre Softwareentwickler die Verifizierung selbst integrieren – mithilfe unserer Dokumentation – oder unser Support-Team nach einer vorgefertigten Integration fragen.

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. Glückwunsch 🎉

Sie sind jetzt durch TrustCaptcha geschützt – Glückwunsch!

CAPTCHA abgeschlossen

FAQs

Wo in einer FastAPI-App läuft die CAPTCHA-Verifizierung?
In der Path-Operation, die das Formular-Submit verarbeitet – oder, für mehrere geschützte Endpunkte, in einer eigenen Depends()-Dependency. Beide funktionieren gleich: Token aus einem Form(...)-Parameter ziehen, Verifizierung aufrufen, bei Fehler HTTPException werfen.
Wie lese ich den CAPTCHA-Token aus einem Form-Post?
Deklarieren Sie ihn als Form-Parameter mit Form(...) und einem Alias für den dashed Namen: tc_verification_token: str = Form(..., alias="tc-verification-token"). FastAPI mappt das versteckte tc-verification-token-Feld des Widgets dann auf Ihren Python-Parameter.
Kann ich eine einzige TrustCaptcha-Instanz über mehrere Endpunkte teilen?
Ja. Nutzen Sie FastAPIs Dependency Injection: Deklarieren Sie eine get_trust_captcha()-Funktion mit @lru_cache, die eine einzige TrustCaptcha-Instanz zurückgibt. Injizieren Sie sie über Depends(get_trust_captcha) in Ihre Endpoints oder in eine verify_trust_captcha-Dependency.
Warum den Verifizierungs-Aufruf in run_in_threadpool kapseln?
Weil das Python-SDK synchron ist (blockierende I/O). Innerhalb eines async def Endpoints würde ein direkter Aufruf den Event-Loop blockieren. run_in_threadpool(...) (oder asyncio.to_thread) übergibt den Aufruf an einen Worker-Thread, sodass andere Requests weiterlaufen können. In einem sync def Endpoint übernimmt FastAPI das automatisch.
Wie nutze ich TrustCaptcha mit einem JSON-Body statt eines Form-Posts?
Deklarieren Sie den Token in Ihrem Pydantic-Request-Modell und lesen Sie ihn aus dem Modell innerhalb des Endpoints oder der Dependency. Der Verifizierungs-Aufruf selbst ändert sich nicht – er funktioniert gleich, unabhängig davon, wie der Token in Ihrem Backend angekommen ist.
Leads verlieren wegen CAPTCHAs?

TrustCaptcha blockiert Spam und Bots – nicht Ihre Kunden. Keine Rätsel, DSGVO-konform, in der EU gehostet.

CAPTCHA-Start
CAPTCHA abgeschlossen
Rätsel-freie UX
Läuft im Hintergrund, während Besucher tippen – so schließen mehr Personen Ihre Formulare ab und weniger brechen ab.
DSGVO-ready
EU-gehostet und privacy-first: keine Cookies, verschlüsselte Übertragung, automatische Bereinigung – inklusive sofort nutzbarer rechtlicher Ressourcen.
Mehrstufige Sicherheit
Adaptive Schutzmechanismen plus intelligentes Risiko-Scoring stoppen Missbrauch frühzeitig – selbst bei plötzlichen Angriffsspitzen.
Volle Kontrolle
Stellen Sie die Sensitivität ein, definieren Sie Allow-/Block-Listen und nutzen Sie Geoblocking – Sie entscheiden, wie streng die Verifizierung sein soll.

Schützen Sie Ihre FastAPI-Anwendung mit TrustCaptcha – in nur wenigen Schritten!

  • EU-hosted & DSGVO-ready
  • Keine Rätsel
  • 14 Tage kostenlos testen