Migrationsanleitung

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.

TTurnstileCurrent setup~10 minCaptchaLaDrop-in target

So sieht die Code-Änderung aus

Before — Turnstile
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
After — CaptchaLa
<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>
Before — Turnstile server verify (Node)
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' })
After — CaptchaLa server verify (Node)
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. 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. 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. 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. 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. 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.

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.