Flarum
Extensión oficial de CaptchaLa para Flarum. Añade verificación CAPTCHA a las acciones que los bots suelen atacar en un foro — registro, inicio de sesión, restablecimiento de contraseña y publicación — con interruptores por acción en el panel de administración.
Qué cubre
Cada acción siguiente es un interruptor independiente en Admin → Extensiones → CaptchaLa.
- Registro
- Inicio de sesión
- Restablecimiento de contraseña
- Respuestas en publicaciones
- Nuevas discusiones
- Edición de perfil
Las sesiones autenticadas abiertas mediante un proveedor SSO / Auth Sync están exentas — consulta SSO / Auth Sync más abajo.
Instalación
1. Requerir la extensión
Desde la raíz de tu instalación de Flarum:
composer require captchala/flarumAlternativamente, en Admin → Extension Manager pega captchala/flarum en el campo Install. La extensión está dirigida a Flarum ≥ 1.8 y PHP ≥ 8.1.
2. Activar en el panel de administración
Abre Admin → Extensions, busca CaptchaLa y haz clic en Enable.
3. Configurar
En el panel de configuración de la extensión:
- Pega tu App Key y App Secret desde
dash.captcha.la. - Activa las acciones que quieras proteger.
- Guarda.
Configuración
Los ajustes se guardan en la tabla estándar de configuración de Flarum bajo el prefijo captchala.*.
| Ajuste | Tipo | Por defecto | Descripción |
|---|---|---|---|
| App Key | string | — | Clave pública (cl_pub_…) del panel de CaptchaLa. Obligatoria. |
| App Secret | string | — | Secreto del servidor. Obligatorio. Usado solo en el servidor para llamar a /v1/validate. |
| Proteger registro | bool | true | Desafío al registrarse. |
| Proteger inicio de sesión | bool | false | Desafío en el modal de inicio de sesión. Desactivado por defecto porque la mayoría de foros protegen el login con limitación de tasa. |
| Proteger restablecimiento de contraseña | bool | true | Desafío al solicitar un correo de restablecimiento de contraseña. |
| Proteger respuestas | bool | false | Desafío al publicar una respuesta. Desactivado por defecto; actívalo si el foro sufre presión de spam. |
| Proteger nuevas discusiones | bool | false | Desafío al abrir una discusión. |
| Modo de verificación | enum | popup | Uno de popup, bind, embed. Se asigna a la opción product del SDK Web. |
| Tema | enum | auto | light, dark o auto. |
| Omitir para usuarios de confianza | bool | true | Los usuarios en grupos marcados como de confianza (p. ej. moderadores) saltan el desafío. |
SSO / Auth Sync
La extensión coopera con los hooks estándar de proveedores de autenticación de Flarum (UserAuthenticated, proveedores Auth Sync de terceros, puentes OAuth).
- Si el usuario llega mediante una sesión SSO autenticada, no se renderiza ningún desafío — la extensión trata la sesión como ya verificada.
- En configuraciones mixtas donde algunos usuarios inician sesión vía SSO y otros vía el formulario local, solo la ruta del formulario local ejecuta el desafío.
- El interruptor
skip_for_trusted_usersse aplica encima: los grupos de confianza saltan el desafío incluso en un inicio de sesión por formulario local.
Preguntas frecuentes
¿Es gratuita la extensión?
Sí. El paquete de Composer es gratuito. El plan gratuito de CaptchaLa cubre 1.000 verificaciones al mes.
¿Detiene los registros de spam?
Bloquea o desafía la mayoría de los registros automatizados a la primera puntuación de riesgo. Ningún CAPTCHA bloquea el 100% — pero en nuestros foros de prueba, el volumen de registros de spam cae aproximadamente un orden de magnitud tras activarlo.
¿Puedo exigirlo solo en el registro?
Sí. Cada acción es un interruptor independiente. El perfil por defecto activa solo registro y restablecimiento de contraseña.
¿Funciona con SSO / Auth Sync?
Sí. Las sesiones abiertas por un proveedor SSO / Auth Sync saltan el desafío. Consulta SSO / Auth Sync.
¿Es de código abierto?
Sí — el código PHP de la extensión es de código abierto. Las llamadas de verificación se hacen contra el servicio alojado de CaptchaLa.
Fuente
- Repositorio de la extensión:
github.com/Captcha-La/captchala-flarum - Packagist:
captchala/flarum - Relacionado: SDK Web · SDK de servidor PHP · Referencia de la API