Von Turnstile zu CaptchaLa migrieren
Drop-in-Ersatz in unter 10 Minuten. Behalten Sie Ihre Formulare, lösen Sie die Cloudflare-Abhängigkeit, gewinnen Sie Challenge-Fallback und Endpunkte für das chinesische Festland.
So sieht die Code-Änderung aus
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script><button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
.onSuccess(res => onToken(res.token))
.bindTo('#login-btn'));
</script>const res = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
secret: process.env.TURNSTILE_SECRET,
response: req.body['cf-turnstile-response'],
}),
})
const data = await res.json()
if (!data.success) return res.status(400).json({ error: 'bot' })const res = await fetch('https://apiv1.captcha.la/v1/validate', {
method: 'POST',
headers: {
'X-App-Key': process.env.CAPTCHALA_APP_KEY,
'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })Migrationsschritte
- 1
Registrieren & App Key + Secret holen
Legen Sie ein kostenloses CaptchaLa-Konto an, fügen Sie eine Site hinzu und kopieren Sie den App Key (öffentlich) und das App Secret (serverseitig). Kein Cloudflare-Konto erforderlich.
- 2
Widget-Tag austauschen
Ersetzen Sie cf-turnstile durch captchala und data-sitekey durch data-app-key. Ändern Sie die Script-src auf unser CDN. Die Widget-Struktur (ein div-Platzhalter + ein Script-Tag) bleibt gleich.
- 3
Namen des versteckten Felds anpassen
Turnstile fügt cf-turnstile-response ein; CaptchaLa fügt captchala-token ein. Die meisten Formular-Handler lesen das Feld nicht über den Namen aus, aber falls Ihrer es tut, benennen Sie die Konstante an einer Stelle um.
- 4
Server-Verify-Aufruf aktualisieren
Ändern Sie den Endpunkt auf apiv1.captcha.la/v1/validate. Wir akzeptieren JSON (Turnstile nimmt form-urlencoded), also passen Sie Content-Type und Body-Struktur an. Die Antwort liefert weiterhin ein valid-Flag (data.valid) für Ihre Verzweigungslogik.
- 5
Schrittweise ausrollen
Behalten Sie Turnstile auf den meisten Formularen und setzen Sie CaptchaLa zuerst auf ein Formular mit wenig Traffic. Beobachten Sie einen Tag lang Conversion und Challenge-Rate. Weiten Sie aus, sobald Sie zufrieden sind – kein Minimum, kein Vertrag.
Schneller: Plugin verwenden
WordPress + WooCommerce
Falls Sie ein Community-Turnstile-Plugin auf WordPress genutzt haben, tauschen Sie es gegen unser offizielles Plugin. Login, Registrierung, Kommentare, WooCommerce-Checkout, CF7 / Gravity / WPForms – alles in einer Installation abgedeckt.
View integration →Flarum
Installieren Sie die CaptchaLa-Erweiterung per Composer, aktivieren Sie sie im Admin-Bereich, und Flarum-Formulare (Registrierung, Login, Passwort-Reset, Beitragsantworten) laufen alle über CaptchaLa.
View integration →Häufige Fragen
Kann ich mein Cloudflare-CDN behalten und trotzdem CaptchaLa nutzen?
Ja. CaptchaLa ist unabhängig von jedem CDN – die meisten unserer Kunden behalten Cloudflare als CDN und nutzen CaptchaLa für die Verifizierung. Die beiden Ebenen kollidieren nicht.
Gelten meine Cloudflare-Bot-Detection-Regeln weiterhin?
Ja – das sind Funktionen von Cloudflare WAF / Bot Management, getrennt von Turnstile. Das Entfernen des Turnstile-Widgets hat keine Auswirkung auf Ihre Cloudflare-Zonen-Konfiguration.
Was, wenn ich Turnstile über Cloudflare Workers nutze?
Die Migration ist auf der Worker-Seite dieselbe. Ersetzen Sie den Turnstile-Fetch durch den CaptchaLa-Fetch. Wir haben in den Docs ein Snippet, das mit der Workers-Laufzeit kompatibel ist.