Panduan migrasi

Migrasi dari Turnstile ke CaptchaLa

Penggantian pasang terus dalam masa kurang 10 minit. Kekalkan borang anda, lepaskan kebergantungan Cloudflare, dapatkan cabaran sandaran dan endpoint tanah besar China.

TTurnstileCurrent setup~10 minCaptchaLaDrop-in target

Bagaimana rupa perubahan kod

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 & dapatkan App Key + Secret anda

    Cipta akaun CaptchaLa percuma, tambah satu tapak, dan salin App Key (awam) serta App Secret (sisi pelayan). Tiada akaun Cloudflare diperlukan.

  2. 2

    Tukar tag widget

    Gantikan cf-turnstile dengan captchala dan data-sitekey dengan data-app-key. Tukar script src kepada CDN kami. Bentuk widget (placeholder div + tag script) adalah sama.

  3. 3

    Kemas kini nama medan tersembunyi

    Turnstile menyuntik cf-turnstile-response; CaptchaLa menyuntik captchala-token. Kebanyakan pengendali borang tidak membaca medan mengikut nama, tetapi jika anda membacanya, namakan semula pemalar di satu tempat.

  4. 4

    Kemas kini panggilan pengesahan pelayan

    Tukar endpoint kepada apiv1.captcha.la/v1/validate. Kami menerima JSON (Turnstile mengambil form-urlencoded), jadi kemas kini Content-Type dan bentuk badan. Respons masih memulangkan bendera valid (data.valid) untuk kod percabangan anda.

  5. 5

    Lancarkan secara berperingkat

    Kekalkan Turnstile pada kebanyakan borang, letakkan CaptchaLa pada satu borang trafik rendah dahulu. Pantau penukaran dan kadar cabaran selama sehari. Kembangkan apabila anda berpuas hati — tiada minimum, tiada kontrak.

Soalan lazim

Bolehkah saya kekalkan CDN Cloudflare dan masih menggunakan CaptchaLa?

Ya. CaptchaLa bebas daripada mana-mana CDN — kebanyakan pelanggan kami mengekalkan Cloudflare untuk CDN dan menggunakan CaptchaLa untuk pengesahan. Kedua-dua lapisan ini tidak bercanggah.

Adakah peraturan pengesanan bot Cloudflare saya masih terpakai?

Ya — itu adalah ciri Cloudflare WAF / Bot Management, berasingan daripada Turnstile. Membuang widget Turnstile tidak memberi kesan kepada konfigurasi zon Cloudflare anda.

Bagaimana jika saya menggunakan Turnstile melalui Cloudflare Workers?

Migrasi adalah sama di sisi Worker. Gantikan fetch Turnstile dengan fetch CaptchaLa. Kami ada coretan dalam dokumentasi yang serasi dengan runtime Workers.