Panduan migrasi

Migrasi dari reCAPTCHA ke CaptchaLa

Penggantian pasang terus dalam masa kurang 10 minit. Kekalkan borang anda, tukar penyedia pengesahan sahaja. Berfungsi dengan HTML biasa, WordPress, Flarum dan mana-mana backend.

GreCAPTCHACurrent setup~10 minCaptchaLaDrop-in target

Bagaimana rupa perubahan kod

Before — reCAPTCHA v2
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://www.google.com/recaptcha/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 — reCAPTCHA server verify (Node)
const res = await fetch('https://www.google.com/recaptcha/api/siteverify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    secret: process.env.RECAPTCHA_SECRET,
    response: req.body['g-recaptcha-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 kad diperlukan.

  2. 2

    Tukar tag widget dalam borang anda

    Gantikan div dan script src reCAPTCHA dengan padanan CaptchaLa. Kelas tag berubah dari g-recaptcha kepada captchala, data-sitekey menjadi data-app-key, dan URL skrip menghala ke CDN kami.

  3. 3

    Kemas kini nama medan penyerahan borang

    reCAPTCHA menyuntik medan tersembunyi bernama g-recaptcha-response. CaptchaLa menggunakan captchala-token. Jika pengendali borang anda membaca medan mengikut nama, namakan semula pemalar tersebut; jika tidak, input tersembunyi mengalir secara automatik.

  4. 4

    Kemas kini pengesahan sisi pelayan

    Halakan permintaan pengesahan ke apiv1.captcha.la/v1/validate dengan kelayakan aplikasi dalam header (X-App-Key / X-App-Secret) dan pass_token dalam badan JSON. Bentuk respons memulangkan bendera valid yang sama (data.valid) seperti reCAPTCHA, jadi kod percabangan sedia ada kekal.

  5. 5

    Lancarkan secara berperingkat

    Kebanyakan pasukan melancarkan ke satu borang dahulu (selalunya yang trafik terendah — pendaftaran surat berita atau hubungi), pantau penukaran dan kadar cabaran selama beberapa jam, kemudian kembangkan. Tiada minimum dan tiada kontrak, jadi pelancaran canary adalah percuma.

Soalan lazim

Adakah saya perlu migrasi semua borang serentak?

Tidak. Kedua-dua sistem boleh wujud bersama pada tapak yang sama — ia tidak berkongsi keadaan atau kuki. Migrasi satu borang pada satu masa.

Bagaimana pula dengan skor risiko reCAPTCHA Enterprise? Adakah skor dipindahkan?

Skor tidak dipindahkan (ia dalaman vendor), tetapi CaptchaLa memulangkan skor risikonya sendiri dalam respons pengesahan. Julat angka dan logik keputusan didokumenkan; pasukan biasanya memetakan ambang skor sedia ada (cth. 0.5) kepada kami dalam masa sejam.

Adakah Google Site Verification atau integrasi Google lain saya akan rosak?

Tidak. reCAPTCHA berasingan daripada Search Console / Site Verification / Analytics. Membuang tag reCAPTCHA tidak memberi kesan kepada mana-mana perkhidmatan Google lain.

Adakah skrip migrasi untuk tapak dengan banyak tag reCAPTCHA terbenam?

Kami tidak menyediakannya (cari-dan-ganti hanyalah satu regex setiap repo, dan templat setiap pangkalan kod berbeza). Coretan shell 10 baris yang digunakan kebanyakan pasukan ada dalam dokumentasi.