Saltar al contenido principal

Migración desde FriendlyCaptcha

Esta guía le ayuda a migrar de FriendlyCaptcha (widget de proof-of-work, normalmente vía friendly-challenge) a MTCaptcha usando el flujo estándar de mtcaptchaConfig + widget + CheckToken.

Por qué los equipos migran de FriendlyCaptcha​

  • Mantener una estrategia de CAPTCHA "privacy-first" mientras consolida la infraestructura en MTCaptcha.
  • Pasar del manejo de desafíos tipo Proof-of-Work a las opciones de desafíos de MTCaptcha.
  • Aprovechar el soporte de accesibilidad de MTCaptcha y las opciones ampliadas de personalización del widget.
  • Mantener una cobertura global de alta disponibilidad, incluyendo China continental.

Resumen de migración​

FriendlyCaptchaMTCaptcha
Script clienteP. ej. https://cdn.jsdelivr.net/npm/friendly-challenge/widget.module.min.js (módulo) o import de bundlerhttps://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js
Clase del widget.frc-captcha (o wrapper de framework sobre FriendlyCaptcha).mtcaptcha (<div class="mtcaptcha"></div>)
Nombre del tokenNormalmente frc-captcha-solution (campo oculto / string de solución)mtcaptcha-verifiedtoken
API backendPOST https://api.friendlycaptcha.com/api/v1/siteverify (hosted) o su endpoint self-hostedGET https://service.mtcaptcha.com/mtcv1/api/checktoken (privatekey + token)
Verificación solo del lado servidor

No exponga su PrivateKey de MTCaptcha en bundles frontend. Ejecute CheckToken solo en el servidor.

Paso 1: Reemplazar el script y el widget del lado cliente​

<!-- Remove [FriendlyCaptcha] -->
<script type="module" src="https://cdn.jsdelivr.net/npm/friendly-challenge/widget.module.min.js" async defer></script>
<div class="frc-captcha" data-sitekey="YOUR_FRIENDLYCAPTCHA_SITE_KEY"></div>

<!-- Add [MTCaptcha] -->
<script>
var mtcaptchaConfig = { "sitekey": "YOUR_SITEKEY" };
</script>
<script src="https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js" async defer></script>
<div class="mtcaptcha"></div>
Orden de carga

Defina mtcaptchaConfig con "sitekey": "YOUR_SITEKEY" antes de cargar mtcaptcha.min.js.

Si inicializaba FriendlyCaptcha desde JavaScript (no HTML estático), elimine ese bootstrap y use el ancla de MTCaptcha o Renderizado Explícito.

Paso 2: Actualizar la verificación del lado servidor​

Reemplace la verificación de FriendlyCaptcha por la API CheckToken de MTCaptcha:

GET https://service.mtcaptcha.com/mtcv1/api/checktoken?privatekey=YOUR_PRIVATEKEY&token=VERIFIED_TOKEN

Use el campo de formulario mtcaptcha-verifiedtoken como token.

Vida útil del token y uso único

Valide los tokens rápidamente. Una segunda llamada CheckToken para el mismo valor puede fallar. Vea Validar Token (Con Clave Privada).

Solución de problemas​

SíntomaQué revisar
Aún carga widget PoWVerifique que imports de FriendlyCaptcha y <div class="frc-captcha"> se eliminaron por completo.
Campo incorrecto en servidorReemplace parsing de frc-captcha-solution por mtcaptcha-verifiedtoken.
CSP bloqueaPermita https://service.mtcaptcha.com para script (y service2 si aplica).
CPU alta del cliente por PoW antiguoTras retirar FriendlyCaptcha, los usuarios no deberían pagar el coste de proof-of-work.
token-expired / invalid-tokenToken obsoleto, doble submit o desfase horario; refresque widget y reintente una vez.

Lecturas adicionales​

Post-Migration Checklist​

  • Assets de FriendlyCaptcha y endpoints de verificación del servidor eliminados.
  • mtcaptchaConfig usa "sitekey": "YOUR_SITEKEY" antes de mtcaptcha.min.js.
  • Backend lee mtcaptcha-verifiedtoken y llama a https://service.mtcaptcha.com/mtcv1/api/checktoken.
  • Métricas de carga, interacción y conversión comparadas antes/después (PoW vs MTCaptcha).
  • Reglas CSP/red actualizadas.