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.
Seperti apa perubahan kodenya
<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' })Langkah migrasi
- 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
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
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
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
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.
Lebih cepat: gunakan plugin
WordPress + WooCommerce
Jika Anda memakai plugin Turnstile komunitas di WordPress, tukar dengan plugin resmi kami. Login, registrasi, komentar, checkout WooCommerce, CF7 / Gravity / WPForms — semua tercakup dalam satu pemasangan.
View integration →Flarum
Pasang ekstensi CaptchaLa via Composer, aktifkan di admin, dan formulir Flarum (registrasi, login, reset kata sandi, balasan postingan) semuanya berjalan melalui CaptchaLa.
View integration →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.