Skip to content

features

Verificación

Confirme la identidad de los miembros con Discord OAuth2 y comprobaciones de seguridad multicapa. Comprenda el flujo de verificación completo, cada comprobación de seguridad, la recopilación de datos, las opciones de personalización y el modo widget.

Visión general

La verificación es la característica principal de Restore Hub. Cuando un miembro quiere unirse a tu servidor, visita tu página de verificación, se autoriza con Discord, pasa las comprobaciones de seguridad y recibe el rol verificado. Todo el proceso dura unos segundos para los usuarios legítimos y bloquea bots, alts, usuarios de VPN y otras amenazas.

El flujo de verificación puede activarse desde dos fuentes: un servidor Discord (el flujo estándar en el que los miembros hacen clic en un enlace de su servidor) o un widget de sitio web (un widget JavaScript incrustable para sitios externos). Ambos flujos utilizan el mismo canal de seguridad.

El flujo de verificación completo

Este es el orden exacto de las operaciones cuando un usuario hace clic en el enlace de verificación. Cada paso ocurre secuencialmente: si falla alguna comprobación, el flujo se detiene y el afiliado ve un mensaje de bloqueo/error.

  1. Carga de la página - sesión creada - El usuario visita su URL de verificación (restorehub.net/s/your-slug o verify.yourdomain.com). RestoreHub crea un ID de sesión único y registra un evento de vista de página con su IP, agente de usuario, tipo de dispositivo, sistema operativo, país y URL de referencia.
  2. Comprobación previa a la autenticación 1 - Lista blanca - Si el servidor tiene alguna regla de lista blanca (IP, ID de usuario, huella digital, país, ASN), Restore Hub comprueba si el visitante coincide con alguna. Los visitantes de la lista blanca se saltan TODAS las comprobaciones de seguridad posteriores y pasan directamente a OAuth2.
  3. Comprobación previa a la autenticación 2 - Cortafuegos - Si el cortafuegos está activado (Premium+), Restore Hub comprueba la IP, el país, el ASN, la huella digital del navegador y otros atributos del visitante con todas las reglas del cortafuegos. Si alguna regla coincide, el visitante es bloqueado inmediatamente.
  4. Comprobación previa a la autenticación 3 - Restricciones por país - Si el servidor tiene configurados países permitidos o bloqueados, se comprueba el país del visitante (derivado de la geolocalización de la IP). Puede funcionar en modo permitido (solo pueden verificar los países incluidos en la lista) o bloqueado (se deniegan los países incluidos en la lista).
  5. Comprobación pre-OAuth 4 - Detección de VPN/Proxy/Tor/Datacenter - Si el bloqueo de VPN está activado (Premium+), la IP del visitante se comprueba en la base de datos interna de inteligencia IP de Restore Hub. Esto cubre nodos de salida VPN, servidores proxy, nodos de salida Tor, IPs de centros de datos/hosting, y rangos bogon. No se realizan llamadas a API externas, todos los datos son locales.
  6. Comprobación previa a la autenticación 5 - Captcha - Si el captcha está habilitado, el visitante debe resolver un desafío de Cloudflare Turnstile (invisible o gestionado) antes de continuar. Esto ocurre antes de OAuth2 para evitar que los bots accedan a la página de autorización de Discord.
  7. Redirección OAuth2 - El visitante pulsa el botón "Verificar" y es redirigido a la página de autorización OAuth2 de Discord. Los ámbitos solicitados son: identify (ID de usuario, nombre de usuario, avatar), email (dirección de correo electrónico), guilds (lista de servidores en los que están) y guilds.join (posibilidad de añadirlos a un servidor).
  8. Consentimiento y devolución de llamada de OAuth2 - El miembro autoriza la solicitud. Discord lo redirige a la URL de devolución de llamada de Restore Hub con un código de autorización. Restore Hub intercambia el código por tokens de acceso y actualización y, a continuación, obtiene el perfil de Discord, el correo electrónico y la lista de clanes del miembro.
  9. Comprobación post-OAuth 1 - Lista negra - El ID de usuario de Discord del miembro se comprueba con su lista negra personal. Si está en la lista negra, se rechaza la verificación.
  10. Comprobación post-OAuth 2 - Edad de la cuenta - Si se establece una antigüedad mínima de la cuenta (por ejemplo, 30 días), Restore Hub extrae la fecha de creación de la cuenta del copo de nieve del ID de usuario de Discord y comprueba si la cuenta es lo suficientemente antigua.
  11. Comprobación post-OAuth 3 - Detección Alt - Si la detección alt está activada (Premium+), Restore Hub compara la huella digital del navegador del miembro (canvas, WebGL, contexto de audio, especificaciones del dispositivo) con todos los miembros previamente verificados en todos tus servidores. Si se encuentra una huella que coincida con un ID de usuario de Discord diferente, se marcará como una posible cuenta alternativa.
  12. Asignación de funciones - Se han superado todas las comprobaciones. Restore Hub utiliza el ámbito guilds.join OAuth2 para añadir el miembro al servidor (si no está ya en él) y asigna el rol verificado configurado utilizando la API REST del bot. El miembro ya está verificado.
  13. Almacenamiento de datos - Se almacenan los datos de Discord del miembro, los tokens OAuth2 (cifrados), los metadatos de red, los metadatos del dispositivo y las huellas dactilares del navegador. Los tokens permiten futuras extracciones. Todos los campos sensibles (IP, correo electrónico, tokens) se cifran en reposo.

Controles de seguridad - Referencia detallada

| Configurable
|---|---|---|---|
| Sí - Añadir reglas por IP, ID de usuario, huella dactilar, país, ASN
| Reglas de cortafuegos: Pre-OAuth (2ª), Premium+, sí: 7 tipos de reglas (IP, país, ASN, huella dactilar, ID de usuario, ID de servidor, región)
| Restricciones de país | Pre-OAuth (3ª) | Todos | Sí - modo permitir o modo bloquear con códigos de país ISO | Sí - 7 tipos de reglas (IP, ASN, huella digital, ID de usuario, ID de servidor, región)
| Detección VPN/Proxy Pre-OAuth (4ª) Premium+ Activar/desactivar; interruptores separados para Tor y bloqueo de centro de datos
| Captcha: Pre-OAuth (5º): Todos: Elija Ninguno o Cloudflare Turnstile
| Lista negra: Post-OAuth (1º): Todos: Se gestiona a través del panel de control o del comando /blacklist
| Edad de la cuenta | Post-OAuth (2º) | Todos | Establecer la edad mínima en días (0 = desactivado) | Detección de Alt
| Activar/desactivar; acción configurable (bloquear, marcar, notificar)

Ámbitos de OAuth2 y lo que permiten

Cuando un miembro se autoriza a través de Discord OAuth2, Restore Hub solicita cuatro ámbitos. Cada ámbito habilita una funcionalidad específica:

| Por qué Restore Hub lo necesita
|---|---|---|
| Identificación: ID de usuario, nombre de usuario, nombre para mostrar, avatar, banner, color de acento, configuración regional, estado MFA, tipo premium, banderas públicas
| Correlación de detección de alertas, contacto para alertas, enriquecimiento de datos
| Guilds | Lista de todos los servidores en los que está el miembro (ID, nombre, icono, indicador de propietario, permisos) | Reglas de cortafuegos basadas en ID de servidor, análisis entre servidores, validación de mercado | Guilds.join | Verificación de identidad básica: saber quién es el miembro
| Guilds.join | Posibilidad de añadir el miembro a un servidor en su nombre | Añadir miembros a servidores de destino durante pulls y cumplimiento de pedidos de mercado | | Lista de todos los servidores en los que está el miembro (ID, nombre, icono, indicador de propietario) | Permisos

Consejo: El ámbito guilds.join es lo que hace posible la incorporación de miembros. Cuando un miembro se verifica, da su consentimiento para ser añadido a los servidores. Restore Hub almacena el token OAuth2 (encriptado) y lo utiliza más tarde cuando se inicia una extracción.

Datos recogidos durante la verificación

Restore Hub recopila datos exhaustivos durante la verificación para potenciar las funciones de seguridad, los análisis y la inteligencia. Aquí tienes un desglose completo de cada punto de datos:

  • Perfil de discordia: iD de usuario, nombre de usuario, nombre para mostrar, hash de avatar, hash de banner, color de acento, configuración regional, tipo premium/Nitro (none, classic, nitro, basic), banderas públicas (insignias), estado MFA, fecha de creación de la cuenta (desde snowflake), bandera de correo electrónico verificado, bandera de teléfono verificado
  • Correo electrónico: dirección de correo electrónico (cifrada en reposo), estado de verificación
  • Gremios: matriz de objetos de gremio en los que se encuentra el miembro (utilizada para reglas de cortafuegos de ID de servidor e inteligencia entre servidores)
  • Tokens OAuth2: token de acceso y token de actualización (ambos encriptados), fecha de caducidad del token
  • Red: Dirección IP (cifrada), código de país, código de región, ciudad, ASN, nombre del ISP, indicador de VPN, indicador de proxy, indicador de Tor, indicador de centro de datos, indicador de móvil
  • Dispositivo: cadena de agente de usuario, tipo de dispositivo (ordenador de sobremesa/móvil/tableta), sistema operativo, resolución de pantalla, idioma, zona horaria
  • Hardware: Recuento de núcleos de CPU (hardwareConcurrency), memoria del dispositivo (GB), proveedor de GPU (WebGL UNMASKED_VENDOR), renderizador de GPU (WebGL UNMASKED_RENDERER), profundidad de color, compatibilidad táctil
  • Navegador: cookies activadas, bandera Do Not Track, recuento de plugins, recuento de fuentes detectadas, tipo de conexión (4g/3g/2g), velocidad de bajada de la conexión (Mbps)
  • Huellas dactilares: huella digital compuesta del navegador, huella digital individual del lienzo, huella digital de WebGL, huella digital de AudioContext
  • Remitente: la URL que remitió al afiliado a la página de verificación (si existe)

Advertencia: Toda la información de identificación personal (direcciones IP, direcciones de correo electrónico, tokens OAuth2) se cifra en reposo utilizando AES-256. En los planes Premium+, los propietarios de servidores pueden ver los datos detallados de los miembros en la página de detalles de los miembros. En el plan Free, sólo es visible la información básica del perfil de Discord.

Páginas de verificación personalizadas

Cada servidor tiene una página de verificación personalizable. Puedes personalizarla para que coincida con la identidad de tu comunidad. Todas las opciones de personalización se configuran en los ajustes del servidor en "Verificar página" o a través del objeto JSON VerifyPageConfig.

| Opción | Descripción |
|---|---|
| Imagen de perfil | Una imagen cuadrada que se muestra encima del botón de verificación (el logotipo de su comunidad) | Imagen de banner | Una imagen ancha en la parte superior de la página | Imagen de banner
| Imagen de banner: una imagen ancha en la parte superior de la página
| Vídeo de banner: un vídeo que se reproduce en la zona del banner (URL MP4/WebM)
| Color de fondo: color sólido para el fondo de la página (código hexadecimal)
| Imagen de fondo: URL de una imagen de fondo a toda página
| Vídeo de fondo: vídeo de fondo en bucle a toda la página (URL MP4/WebM)
| Familia de fuentes: nombre de Google Fonts (por ejemplo, "Inter", "Poppins", "JetBrains Mono")
| Color del texto: color hexadecimal para todo el texto de la página
| Color del botón: color hexadecimal sólido para el botón de verificación
| Gradiente del botón: Cadena de gradiente CSS para el botón de verificación (anula el color sólido)
| CSS personalizado: CSS sin procesar inyectado en la página para una personalización avanzada
| Enlaces sociales: Conjunto de objetos {platform, url} representados como iconos debajo del botón de verificación
| Mensaje de éxito: Mensaje personalizado que se muestra tras una verificación correcta
| Mensaje de error: mensaje personalizado que se muestra cuando falla la verificación
| Mensaje de bloqueo: mensaje personalizado que se muestra cuando un miembro está bloqueado por controles de seguridad
| Cursor personalizado: URL de una imagen de cursor personalizada
| URL de música: URL del audio de fondo que se reproduce en la página de verificación

Consejo: Puedes previsualizar tu página de verificación personalizada en el panel de control antes de activarla. Utilice el botón "Vista previa" en la configuración del servidor.

Modo Widget - Verificación en su sitio web

Además del flujo de verificación estándar basado en Discord, Restore Hub ofrece un widget JavaScript que puedes incrustar en cualquier sitio web. Esto permite Discord SSO (Single Sign-On) en su propio sitio - miembros verifican a través de su sitio y obtener un papel en su servidor de Discord.

El modo widget utiliza el mismo flujo de seguridad (cortafuegos, detección VPN, captcha, detección alt) que la verificación estándar. La única diferencia es dónde inicia el miembro el flujo.

  1. Activar el widget - En la configuración del servidor, vaya a la pestaña Widget y actívela.
  2. Configurar los orígenes permitidos - Añade los dominios en los que se incrustará el widget (por ejemplo, https://yoursite.com). Esto evita que el widget se utilice en sitios no autorizados.
  3. Personalizar el botón - Establezca el texto del botón (por defecto: "Iniciar sesión con Discord"), el color del botón y el color del texto.
  4. Incrustar el guión - Copia la etiqueta <script> proporcionada y pégala en el HTML de tu sitio web. El widget muestra un botón que activa el flujo Discord OAuth2 en una ventana emergente.
npm install @restorehub/widget

import { verify } from "@restorehub/widget";
const result = await verify("tu-servidor-slug");

URL de verificación

Los afiliados acceden a su página de verificación a través de uno de los dos formatos de URL:

  • Slug URL: restorehub.net/s/your-community - Configuración instantánea, sin necesidad de DNS. Slug debe ser sólo letras minúsculas, números y guiones.
  • Dominio personalizado: verify.sudominio.com - Requiere un registro CNAME que apunte a cname.restorehub.net. Disponible en los planes Business+. SSL automático a través de Let's Encrypt.

Estados de los eventos de verificación

Cada intento de verificación se rastrea a través de una serie de estados de eventos. Estos aparecen en el panel de análisis y en las respuestas de la API:

| Estado | Significado |
|---|---|
| El usuario ha cargado la página de verificación
| El usuario ha pulsado el botón de verificación
| CAPTCHA_SHOWN | Se ha visualizado el desafío Captcha | | CAPTCHA_PASSED
| CAPTCHA_PASSED: El usuario ha superado el captcha
| OAUTH_REDIRECT: El usuario ha sido redirigido a Discord OAuth2
| COMPLETED | Verificación realizada con éxito - rol asignado | | BLOCKED | Bloqueado
| Bloqueado por una comprobación de seguridad (el campo blockReason tiene detalles)
| La verificación ha fallado debido a un error (intercambio de token fallido, error de API, etc.)
Verificación — Restore Hub Docs | Restore Hub