Guía de migración

Migra de Friendly Captcha a CaptchaLa

La misma postura de privacidad primero. Integra CaptchaLa y gana SDKs móviles, disponibilidad en China continental y respaldo de desafío visible. La migración son dos cambios de archivo.

FFriendly CaptchaCurrent setup~10 minCaptchaLaDrop-in target

Cómo es el cambio de código

Before — Friendly Captcha
<div class="frc-captcha" data-sitekey="YOUR_SITE_KEY"></div>
<script type="module" src="https://cdn.jsdelivr.net/npm/@friendlycaptcha/sdk/site.compat.min.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 — Friendly Captcha server verify (Node)
const res = await fetch('https://api.friendlycaptcha.com/api/v1/siteverify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    secret: process.env.FRIENDLY_SECRET,
    solution: req.body['frc-captcha-solution'],
    sitekey: process.env.FRIENDLY_SITEKEY,
  }),
})
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' })

Pasos de migración

  1. 1

    Regístrate y obtén tu App Key + Secret

    Crea una cuenta gratuita en CaptchaLa, añade un sitio y copia tus claves. Sin llamada de ventas, sin contrato.

  2. 2

    Cambia la etiqueta del widget

    Reemplaza frc-captcha por captchala, data-sitekey por data-app-key, y el script src por el de nuestro CDN. El script de tipo módulo pasa a ser un script async normal.

  3. 3

    Actualiza el nombre del campo oculto

    Friendly Captcha envía frc-captcha-solution; nosotros enviamos captchala-token. Renómbralo en tu manejador de formularios si lo lees por su nombre.

  4. 4

    Actualiza la verificación del servidor

    El endpoint cambia a apiv1.captcha.la/v1/validate. El cuerpo elimina el campo sitekey — identificamos el sitio a partir de tu appSecret. El flag valid (data.valid) de la respuesta se mantiene igual.

  5. 5

    Despliega de forma gradual

    Cambia un formulario a la vez. CaptchaLa coexiste con Friendly Captcha — no comparten cookies ni estado. La mayoría de los equipos descubren que la conversión mejora ligeramente porque desaparece el cómputo de PoW en los dispositivos de los usuarios.

Preguntas frecuentes

¿Perderé la narrativa de privacidad auditable?

La arquitectura exclusivamente de PoW de Friendly Captcha es más auditable en un sentido criptográfico literal — realmente no hay nada que registrar mediante fingerprinting. CaptchaLa tampoco hace fingerprinting, pero nuestra arquitectura (riesgo adaptativo + desafío) es más compleja, lo que dificulta la auditoría. Si tu criterio de privacidad es 'auditable por un abogado de privacidad con experiencia en criptografía', esa es una distinción real a considerar.

¿Y el móvil?

Esta es una de las mayores ventajas de la migración. Friendly Captcha es solo web. CaptchaLa tiene SDKs nativos de iOS, Android y Flutter — el mismo backend, el mismo panel, la misma facturación. Lanza CAPTCHA en tu app móvil sin elegir un segundo proveedor.

¿Cómo notan la diferencia mis usuarios?

En teléfonos antiguos y portátiles de gama baja, el cómputo de PoW que Friendly Captcha ejecuta en segundo plano puede notarse — unos segundos de consumo de CPU. CaptchaLa no ejecuta cómputo pesado en el dispositivo. La mayoría de los usuarios no notarán la diferencia de ningún modo; los usuarios con hardware débil nos notarán menos.