Panduan migrasi

Migrasi dari Turnstile ke CaptchaLa

Pengganti drop-in dalam kurang dari 10 menit. Pertahankan formulir Anda, lepaskan ketergantungan pada Cloudflare, dapatkan challenge fallback dan endpoint Tiongkok daratan.

TTurnstileCurrent setup~10 minCaptchaLaDrop-in target

Seperti apa perubahan kodenya

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' })

Langkah migrasi

  1. 1

    Daftar & ambil App Key + Secret Anda

    Buat akun CaptchaLa gratis, tambahkan situs, lalu salin App Key (publik) dan App Secret (sisi server). Tanpa perlu akun Cloudflare.

  2. 2

    Tukar tag widget

    Ganti cf-turnstile dengan captchala dan data-sitekey dengan data-app-key. Ubah script src ke CDN kami. Bentuk widget (placeholder div + tag script) tetap sama.

  3. 3

    Perbarui nama field tersembunyi

    Turnstile menyisipkan cf-turnstile-response; CaptchaLa menyisipkan captchala-token. Kebanyakan handler formulir tidak membaca field berdasarkan nama, tetapi jika punya Anda demikian, ganti namanya di satu tempat.

  4. 4

    Perbarui panggilan verifikasi server

    Ubah endpoint menjadi apiv1.captcha.la/v1/validate. Kami menerima JSON (Turnstile memakai form-urlencoded), jadi perbarui Content-Type dan bentuk body. Respons tetap mengembalikan flag valid (data.valid) untuk kode percabangan Anda.

  5. 5

    Luncurkan secara bertahap

    Pertahankan Turnstile di sebagian besar formulir, pasang CaptchaLa di satu formulir berlalu lintas rendah dulu. Amati konversi dan tingkat challenge selama sehari. Perluas setelah Anda puas — tidak ada minimum, tidak ada kontrak.

Pertanyaan umum

Bisakah saya tetap memakai CDN Cloudflare dan tetap menggunakan CaptchaLa?

Ya. CaptchaLa tidak bergantung pada CDN apa pun — kebanyakan pelanggan kami tetap memakai Cloudflare sebagai CDN dan memakai CaptchaLa untuk verifikasi. Kedua lapisan ini tidak berbenturan.

Apakah aturan deteksi bot Cloudflare saya tetap berlaku?

Ya — itu adalah fitur Cloudflare WAF / Bot Management, terpisah dari Turnstile. Menghapus widget Turnstile tidak berdampak pada konfigurasi zona Cloudflare Anda.

Bagaimana jika saya memakai Turnstile via Cloudflare Workers?

Migrasi di sisi Worker sama saja. Ganti fetch Turnstile dengan fetch CaptchaLa. Kami punya cuplikan di dokumentasi yang kompatibel dengan runtime Workers.