Laravel
TrustCaptcha – Bot-Schutz

Laravel CAPTCHA-Integration

Binden Sie TrustCaptcha mit wenigen Zeilen PHP in einen Laravel-Controller – oder, noch sauberer, in eine eigene Form-Request-Validation-Rule – ein. Stoppen Sie botgetriebenen Spam in Logins, Registrierungen und Kontaktformularen, ohne @csrf oder Ihre Validierungs-Pipeline zu brechen. 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 Blade-Template einbauen

Binden Sie das TrustCaptcha-Widget in das Blade-Template ein, das Ihr Formular rendert. Das Widget läuft im Hintergrund und fügt beim Absenden ein verstecktes Feld tc-verification-token hinzu, das auf $request ankommt wie jeder andere Input.

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

<form method="POST" action="{{ route('contact.submit') }}">
    @csrf
    <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 Laravel-Controller validieren

Holen Sie in Ihrem Laravel-Controller den Verifikationstoken aus $request, rufen Sie das Ergebnis über unsere PHP-Library ab und entscheiden Sie, ob die Anfrage akzeptiert werden soll.

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

Install
bash
composer require trustcomponent/trustcaptcha-php:^3.0

Validieren Sie dann den Token in Ihrem Controller und reagieren Sie auf das Ergebnis:

ContactController.php
PHP
use Illuminate\Http\Request;
use TrustComponent\TrustCaptcha\TrustCaptcha;

public function submit(Request $request)
{
    $token = $request->input('tc-verification-token');

    try {
        $trustCaptcha = new TrustCaptcha('<your_api_key>');
        $result = $trustCaptcha->getVerificationResult($token);
    } catch (\Throwable $e) {
        return back()->withErrors(['captcha' => 'CAPTCHA verification failed.']);
    }

    if (!$result->verificationPassed || $result->score > 0.5) {
        return back()->withErrors(['captcha' => 'CAPTCHA verification failed.']);
    }

    // CAPTCHA bestanden — Anfrage verarbeiten
    return back()->with('status', 'Thanks!');
}

Detaillierte Informationen zur Laravel-CAPTCHA-Integration?
Für die vollständige Schritt-für-Schritt-Anleitung – inklusive einer wiederverwendbaren Form-Request-Rule für Projekte mit mehreren geschützten Endpunkten – lesen Sie bitte unsere Dokumentation.

Dokumentation lesen

Anderes Backend-Framework statt Laravel?
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 Laravel-App läuft die CAPTCHA-Verifizierung?
In der Controller-Methode, die das Formular-Submit empfängt – bevor Sie ein Modell speichern oder eine Mail versenden. Der CAPTCHA-Token kommt als regulärer Request-Input – Sie lesen ihn mit $request->input('tc-verification-token').
Kann ich die CAPTCHA-Prüfung in die Form-Request-Validierung einhängen?
Ja – das ist das sauberste Pattern. Bauen Sie eine eigene Rule (php artisan make:rule TrustCaptchaToken), die in ihrer validate()-Methode unsere PHP-Library aufruft, und ergänzen Sie sie im rules()-Array Ihres Form Requests. Die Verifizierung läuft dann als Teil von $request->validated() wie jede andere Rule.
Ersetzt TrustCaptcha den @csrf-Schutz von Laravel?
Nein. CSRF und TrustCaptcha sind unabhängige Schichten – beide sollten aktiviert bleiben. Behalten Sie @csrf in Ihrem Blade-Formular und die VerifyCsrfToken-Middleware in Ihrem Kernel. Der CAPTCHA-Token bestätigt nur, dass ein Mensch das Formular abgesendet hat.
Wo speichere ich den CAPTCHA-API-Key?
Tragen Sie TRUSTCAPTCHA_API_KEY in Ihre .env-Datei ein und exponieren Sie ihn über config/services.php unter 'trustcaptcha.api_key'. Lesen Sie ihn mit config('services.trustcaptcha.api_key') – den Roh-Key niemals ins Repo committen.
Warum enthält der Feldname einen Bindestrich (tc-verification-token)?
Das ist der Default-Feldname, den das Widget postet. Laravels $request->input() und Validation Rules akzeptieren dashed Input-Keys problemlos. Wenn Sie lieber camelCase nutzen, setzen Sie token-field-name="trustcaptchaToken" am Widget und passen Controller / Rule entsprechend an.
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 Laravel-Anwendung mit TrustCaptcha – in nur wenigen Schritten!

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