Resolução de Problemas
Esta página fornece orientações para resolver problemas comuns relacionados às integrações do ALTCHA. Para começar, habilite o modo de depuração no widget e verifique os registros no console do desenvolvedor.
Modo de Depuração
Para habilitar o modo de depuração no widget, use o atributo debug
:
O modo de depuração exibirá mensagens de log no console. Abra o console do desenvolvedor do seu navegador para visualizar esses logs.
Problemas Comuns
Widget Não Consegue Encontrar a Solução
Problema:
O widget relata “Falha na verificação” e o console exibe “Não é possível encontrar uma solução” (com o debug
habilitado).
Solução:
Este problema pode ocorrer devido a:
-
Número Aleatório Excede o Máximo: Certifique-se de que o número aleatório gerado pelo seu servidor não excede o número máximo configurado. Por padrão, o número máximo é 1.000.000, mas pode ser substituído pelo parâmetro
maxnumber
na resposta do desafio. Alinhe a geração de números aleatórios do seu servidor com este máximo. -
Cálculo do Desafio Incorreto: Verifique a implementação do seu servidor. Para detalhes, consulte a documentação do servidor ou bibliotecas oficiais para implementações específicas de linguagens. Por exemplo, verifique se
salt=some_salt?expires=1722614680
enumber=1234
geram umchallenge
SHA-256 igual a8b1fa4ee51e9e9c8b53cd0c080ca42458accc39424a13fb51e56cfe439814d5f
. Certifique-se de que quaisquer parâmetros adicionais (por exemplo,expires
) sejam incluídos na entrada do hash.
Secure Context
Problema:
O widget ALTCHA não funciona e exibe o seguinte erro no console do desenvolvedor:
Uncaught TypeError: Cannot read properties of undefined (reading 'digest')
.
Solução:
O widget ALTCHA utiliza a interface SubtleCrypto integrada no navegador para realizar operações criptográficas de forma segura. Esta interface está disponível apenas em um contexto seguro, que geralmente exige HTTPS ou determinadas configurações de localhost.
Para resolver este problema:
- Certifique-se de acessar seu site por meio de HTTPS.
- Para desenvolvimento local, use domínios localhost suportados, como:
http://localhost
http://*.localhost
(por exemplo,http://meuapp.localhost
)
Isso ativará o contexto seguro necessário para que o widget funcione corretamente.
Os ouvintes de eventos não funcionam
Problema:
Eventos como statechange
ou verified
não são acionados.
Solução:
Certifique-se de anexar os ouvintes de eventos após o script ALTCHA ser carregado e o componente ser inicializado.
-
Anexar ouvintes após a inicialização:
Os ouvintes de eventos devem ser adicionados apenas depois que o script ALTCHA for completamente carregado e o componente inicializado.-
Para frameworks modernos e empacotadores:
Certifique-se de importarimport 'altcha'
na sua aplicação. -
Para JavaScript personalizado:
Use o eventoDOMContentLoaded
para anexar os ouvintes:
-
-
Lidar com importações assíncronas:
Se usar importações assíncronas comoimport('altcha')
, aguarde a resolução da importação antes de adicionar os ouvintes:
Problemas com renderização no lado do servidor (SSR)
Problema:
Ao usar frameworks como Next.js ou SvelteKit, a compilação pode falhar com o erro ReferenceError: customElements is not defined
.
Solução:
O widget ALTCHA é um WebComponent
personalizado e depende da propriedade Window.customElements, que normalmente não está disponível em ambientes SSR.
Para resolver isso, certifique-se de que o widget seja importado apenas no cliente (navegador). Por exemplo, use a função dinâmica import('altcha')
. Alguns frameworks oferecem funções auxiliares para detectar se o código está sendo executado no servidor. Caso contrário, você pode verificar manualmente o ambiente do navegador usando typeof window
.
No SvelteKit, você pode usar $app/environment
para detectar se o código está sendo executado no navegador:
Problemas de Política de Segurança de Conteúdo (CSP)
Problema:
O widget não é renderizado corretamente, ou o console exibe erros relacionados à CSP.
Solução:
Consulte a documentação da Política de Segurança de Conteúdo (CSP) para configurar corretamente a CSP para o widget.
Problemas de Compartilhamento de Recursos de Origem Cruzada (CORS)
Problema:
O widget falha ao buscar o desafio do servidor e erros relacionados ao CORS aparecem no console.
Solução:
Este problema surge quando seu site ou aplicativo está em um domínio diferente do seu servidor. Habilite o CORS (Compartilhamento de Recursos de Origem Cruzada) no seu servidor. Uma configuração básica do CORS inclui:
Para orientação detalhada, consulte a documentação do MDN.