Skip to content

features

Verificação

Confirme a identidade dos membros com o Discord OAuth2 e verificações de segurança em várias camadas. Entenda o fluxo completo de verificação, cada verificação de segurança, coleta de dados, opções de personalização e modo de widget.

Visão geral

A verificação é o principal recurso do Restore Hub. Quando um membro deseja ingressar em seu servidor, ele visita sua página de verificação, autoriza com o Discord, passa pelas verificações de segurança e recebe a função verificada. Todo o fluxo leva segundos para usuários legítimos e bloqueia bots, alts, usuários de VPN e outras ameaças.

O fluxo de verificação pode ser acionado a partir de duas fontes: um servidor Discord (o fluxo padrão em que os membros clicam em um link em seu servidor) ou um widget de site (um widget JavaScript incorporável para sites externos). Ambos os fluxos usam o mesmo pipeline de segurança.

O fluxo de verificação completo

Aqui está a ordem exata das operações quando um membro clica em seu link de verificação. Cada etapa acontece sequencialmente - se alguma verificação falhar, o fluxo será interrompido e o membro verá uma mensagem de bloqueio/erro.

  1. Carregamento da página - sessão criada - O membro visita sua URL de verificação (restorehub.net/s/your-slug ou verify.yourdomain.com). O RestoreHub cria um ID de sessão exclusivo e registra um evento de exibição de página com seu IP, agente de usuário, tipo de dispositivo, sistema operacional, país e URL de referência.
  2. Verificação pré-OAuth 1 - Lista de permissões - Se o servidor tiver alguma regra de lista branca (IP, ID de usuário, impressão digital, país, ASN), o Restore Hub verificará se o visitante corresponde a alguma delas. Os visitantes da lista branca ignoram TODAS as verificações de segurança subsequentes e seguem diretamente para o OAuth2.
  3. Verificação pré-OAuth 2 - Firewall - Se o firewall estiver ativado (Premium+), o Restore Hub verificará o IP, o país, o ASN, a impressão digital do navegador e outros atributos do visitante em relação a todas as regras do firewall. Se alguma regra corresponder, o visitante será bloqueado imediatamente.
  4. Verificação pré-autenticação 3 - Restrições de país - Se o servidor tiver países permitidos ou bloqueados configurados, o país do visitante (derivado da geolocalização do IP) será verificado. Você pode operar no modo de permissão (somente os países listados podem verificar) ou no modo de bloqueio (os países listados são negados).
  5. Verificação pré-OAuth 4 - Detecção de VPN/Proxy/Tor/Datacenter - Se o bloqueio de VPN estiver ativado (Premium+), o IP do visitante será verificado no banco de dados interno de inteligência de IP do Restore Hub. Isso abrange nós de saída de VPN, servidores proxy, nós de saída do Tor, IPs de datacenter/hospedagem e intervalos falsos. Não são feitas chamadas de API externas - todos os dados são locais.
  6. Verificação pré-autenticação 5 - Captcha - Se o captcha estiver ativado, o visitante deverá resolver um desafio do Cloudflare Turnstile (invisível ou gerenciado) antes de prosseguir. Isso acontece antes do OAuth2 para evitar que os bots acessem a página de autorização do Discord.
  7. Redirecionamento do OAuth2 - O visitante clica no botão "Verificar" e é redirecionado para a página de autorização OAuth2 do Discord. Os escopos solicitados são: identificar (ID do usuário, nome de usuário, avatar), e-mail (endereço de e-mail), guildas (lista de servidores em que ele está) e guildas.join (capacidade de adicioná-lo a um servidor).
  8. Consentimento e retorno de chamada do OAuth2 - O membro autoriza o aplicativo. O Discord o redireciona para o URL de retorno de chamada do Restore Hub com um código de autorização. O Restore Hub troca o código por tokens de acesso e atualização e, em seguida, busca o perfil do Discord, o e-mail e a lista de guildas do membro.
  9. Verificação pós-autenticação 1 - Lista negra - O ID de usuário do Discord do membro é verificado em sua lista negra pessoal. Se ele estiver na lista negra, a verificação será rejeitada.
  10. Verificação pós-OAuth 2 - Idade da conta - Se uma idade mínima da conta for definida (por exemplo, 30 dias), o Restore Hub extrai a data de criação da conta do floco de neve do ID de usuário do Discord e verifica se a conta é antiga o suficiente.
  11. Verificação pós-OAuth 3 - Detecção de Alt - Se a detecção de alt estiver ativada (Premium+), o Restore Hub comparará a impressão digital do navegador do membro (tela, WebGL, contexto de áudio, especificações do dispositivo) com todos os membros verificados anteriormente em seus servidores. Se uma impressão digital correspondente for encontrada em um ID de usuário do Discord diferente, ela será sinalizada como uma possível conta alternativa.
  12. Atribuição de função - Todas as verificações foram aprovadas. O Restore Hub usa o escopo guilds.join OAuth2 para adicionar o membro ao servidor (se ainda não estiver nele) e atribui a função verificada configurada usando a API REST do bot. O membro agora está verificado.
  13. Armazenamento de dados - Os dados do Discord do membro, os tokens OAuth2 (criptografados), os metadados da rede, os metadados do dispositivo e as impressões digitais do navegador são armazenados. Os tokens permitem a extração futura. Todos os campos confidenciais (IP, e-mail, tokens) são criptografados em repouso.

Verificações de segurança - Referência detalhada

| Verificar | Quando | Planejar | Configurável |
|---|---|---|---|
| Bypass da lista de permissões | Pre-OAuth (1st) | Premium+ | Sim - adicionar regras por IP, ID de usuário, impressão digital, país, ASN
| Regras de firewall | Pre-OAuth (2nd) | Premium+ | Sim - 7 tipos de regras (IP, País, ASN, Impressão digital, ID do usuário, ID do servidor, Região)
| Restrições de país | Pre-OAuth (3rd) | All | Sim - modo de permissão ou modo de bloqueio com códigos de país ISO |
| Detecção de VPN/Proxy | Pré-OAuth (4ª) | Premium+ | Ativação/desativação; alternância separada para Tor e bloqueio de datacenter
| Captcha | Pré-OAuth (5ª) | Todos | Escolha Nenhum ou Cloudflare Turnstile |
| Lista negra | Pós-OAuth (1º) | Todos | Gerenciado via painel ou comando /blacklist |
| Idade da conta | Post-OAuth (2nd) | Todos | Definir idade mínima em dias (0 = desativado)
| Detecção de Alt | Post-OAuth (3rd) | Premium+ | Ativar/desativar; ação configurável (bloquear, sinalizar, notificar)

Escopos do OAuth2 e o que eles permitem

Quando um membro faz a autorização por meio do Discord OAuth2, o Restore Hub solicita quatro escopos. Cada escopo habilita uma funcionalidade específica:

| Escopo | Concede acesso a | Por que o Restore Hub precisa dele |
|---|---|---|
| Identificação | ID de usuário, nome de usuário, nome de exibição, avatar, banner, cor de destaque, localidade, status de MFA, tipo premium, sinalizadores públicos | Verificação de identidade principal - saber quem é o membro
| E-mail | Endereço de e-mail e se ele foi verificado | Correlação de detecção de alterações, contato para alertas, enriquecimento de dados
| Guildas | Lista de todos os servidores em que o membro está (ID, nome, ícone, sinalizador de proprietário, permissões) | Regras de firewall baseadas em ID de servidor, análise entre servidores, validação de marketplace
| Capacidade de adicionar o membro a um servidor em seu nome Adicionar membros a servidores de destino durante pulls e atendimento de pedidos do marketplace

Dica: O escopo guilds.join é o que torna possível a extração de membros. Quando um membro faz a verificação, ele consente em ser adicionado aos servidores. O Restore Hub armazena o token OAuth2 (criptografado) e o utiliza posteriormente quando você inicia um pull.

Dados coletados durante a verificação

O Restore Hub coleta dados abrangentes durante a verificação para potencializar os recursos de segurança, a análise e a inteligência. Aqui está um detalhamento completo de cada ponto de dados:

  • Perfil do Discord: iD de usuário, nome de usuário, nome de exibição, hash de avatar, hash de banner, cor de destaque, local, tipo premium/Nitro (nenhum, clássico, nitro, básico), sinalizadores públicos (emblemas), status de MFA, data de criação da conta (do snowflake), sinalizador de e-mail verificado, sinalizador de telefone verificado
  • E-mail: endereço de e-mail (criptografado em repouso), status de verificação
  • Guildas: matriz de objetos de guilda em que o membro está (usada para regras de firewall de ID de servidor e inteligência entre servidores)
  • Tokens OAuth2: token de acesso e token de atualização (ambos criptografados), carimbo de data/hora de expiração do token
  • Rede: Endereço IP (criptografado), código do país, código da região, cidade, ASN, nome do ISP, bandeira VPN, bandeira proxy, bandeira Tor, bandeira do datacenter, bandeira do celular
  • Dispositivo: string do agente do usuário, tipo de dispositivo (desktop/mobile/tablet), sistema operacional, resolução de tela, idioma, fuso horário
  • Hardware: Contagem de núcleos de CPU (hardwareConcurrency), memória do dispositivo (GB), fornecedor de GPU (WebGL UNMASKED_VENDOR), renderizador de GPU (WebGL UNMASKED_RENDERER), profundidade de cor, suporte a toque
  • Navegador: cookies ativados, sinalizador Do Not Track (Não rastrear), contagem de plugins, contagem de fontes detectadas, tipo de conexão (4g/3g/2g), velocidade de downlink da conexão (Mbps)
  • Impressões digitais: hash de impressão digital de navegador composto, hash de impressão digital de tela individual, hash de impressão digital de WebGL, hash de impressão digital de AudioContext
  • Referenciador: o URL que encaminhou o membro para a página de verificação (se houver)

Aviso: Todas as informações de identificação pessoal (endereços IP, endereços de e-mail, tokens OAuth2) são criptografadas em repouso usando AES-256. Nos planos Premium+, os proprietários do servidor podem visualizar os dados detalhados dos membros na página de detalhes do membro. No plano Free, somente as informações básicas do perfil do Discord são visíveis.

Páginas de verificação personalizadas

Cada servidor recebe uma página de verificação personalizável. Você pode marcá-la para que corresponda à identidade de sua comunidade. Todas as opções de personalização são definidas nas configurações do servidor em "Verify Page" (Página de verificação) ou por meio do objeto JSON VerifyPageConfig.

opção | Descrição | Opção | Descrição
|---|---|
| Imagem de perfil | Uma imagem quadrada exibida acima do botão Verificar (o logotipo de sua comunidade)
| Imagem do banner | Uma imagem ampla na parte superior da página
| Vídeo do banner | Um vídeo que é reproduzido na área do banner (URL MP4/WebM)
| Cor de fundo | Uma cor sólida para o fundo da página (código hexadecimal)
| Imagem de fundo: URL de uma imagem de fundo de página inteira
| Vídeo de fundo | Um vídeo de fundo em loop de página inteira (URL MP4/WebM)
| Família da fonte: nome do Google Fonts (por exemplo, "Inter", "Poppins", "JetBrains Mono")
| Cor do texto | Cor hexadecimal para todo o texto da página
| Cor do botão | Cor hexadecimal sólida para o botão de verificação
| Gradiente do botão | Cadeia de gradiente CSS para o botão de verificação (substitui a cor sólida)
| CSS personalizado | CSS bruto injetado na página para personalização avançada
| Social Links | Matriz de objetos {platform, url} renderizados como ícones abaixo do botão de verificação
| Mensagem de sucesso | Mensagem personalizada exibida após a verificação bem-sucedida
| Mensagem de erro | Mensagem personalizada exibida em caso de falha na verificação
| Mensagem de bloqueio | Mensagem personalizada mostrada quando um membro é bloqueado por verificações de segurança
| Cursor personalizado: URL para uma imagem de cursor personalizada
| URL da música | URL do áudio de fundo que é reproduzido na página de verificação

Dica: você pode visualizar sua página de verificação personalizada no painel antes de torná-la ativa. Use o botão "Preview" (Visualizar) nas configurações do servidor.

Modo Widget - Verificação em seu site

Além do fluxo de verificação padrão baseado no Discord, o Restore Hub oferece um widget JavaScript que você pode incorporar em qualquer site. Isso permite o SSO (Single Sign-On) do Discord em seu próprio site - os membros fazem a verificação por meio de seu site e obtêm uma função em seu servidor do Discord.

O modo Widget usa o mesmo pipeline de segurança (firewall, detecção de VPN, captcha, detecção de alt) que a verificação padrão. A única diferença é onde o membro inicia o fluxo.

  1. Ativar o widget - Nas configurações do servidor, vá até a guia Widget e ative-a.
  2. Configurar origens permitidas - Adicione os domínios em que o widget será incorporado (por exemplo, https://yoursite.com). Isso evita que o widget seja usado em sites não autorizados.
  3. Personalizar o botão - Defina o texto do botão (padrão: "Login with Discord"), a cor do botão e a cor do texto.
  4. Incorporar o script - Copie a tag <script> fornecida e cole-a no HTML do seu site. O widget renderiza um botão que aciona o fluxo do Discord OAuth2 em um pop-up.
npm install @restorehub/widget

importar { verify } de "@restorehub/widget";
const result = await verify("your-server-slug");

URLs de verificação

Os membros acessam sua página de verificação por meio de um dos dois formatos de URL:

  • URL da lesma: restorehub.net/s/your-community - Configuração instantânea, sem necessidade de DNS. O slug deve conter apenas letras minúsculas, números e hífens.
  • Domínio personalizado: verify.yourdomain.com - Requer um registro CNAME apontando para cname.restorehub.net. Disponível nos planos Business+. SSL automático via Let's Encrypt.

Status dos eventos de verificação

Cada tentativa de verificação é rastreada por meio de uma série de status de eventos. Eles aparecem em seu painel de análise e nas respostas da API:

| Status | Significado |
|---|---|
| PAGE_VIEW | O membro carregou a página de verificação
| STARTED | O membro clicou no botão Verificar
| CAPTCHA_SHOWN | O desafio do Captcha foi exibido
| CAPTCHA_PASSED | O membro solucionou o captcha
| OAUTH_REDIRECT | O membro foi redirecionado para o Discord OAuth2 |
| COMPLETED | Verificação bem-sucedida - função atribuída |
| BLOCKED | Bloqueado por uma verificação de segurança (o campo blockReason tem detalhes)
| FAILED | A verificação falhou devido a um erro (falha na troca de token, erro de API, etc.)
Verificação — Restore Hub Docs | Restore Hub