[AJUDA] - Problemas com Challenge Page do Cloudflare
Então, tenho um projeto na Vercel usando Next.js. Uma página desse projeto (chamada Match) faz requests dinâmicos para uma API, ou seja, ela as faz várias vezes na mesma página sem precisar atualizá-la, e os elementos mudam dinamicamente com base nas respostas recebidas (novamente, sem precisar atualizar a página).
Desde que adicionei o Cloudflare com o nível de segurança definido como Médio, começou a mostrar uma página de desafio de JavaScript sempre que um visitante acessa a página, o que é normal. No entanto, na página Match, existe um sistema de requests que ocorre a cada 3 segundos, perguntando se encontrou um oponente na fila. E, uma vez que o jogo está em andamento, há outro sistema de requests a cada 10 segundos, perguntando se o oponente já fez sua jogada.
Aparentemente, o Cloudflare bloqueia esses requests se uma pessoa, por exemplo, sai da página e volta. Esse problema foi relatado por um amigo meu que usava o site enquanto trabalhava. Sempre que ele fazia sua jogada, ele fazia outra coisa e voltava quando fosse a vez dele novamente, mas as vezes isso nunca acontecia, e no console mostrava um erro 403, forçando ele a atualizar a página e passar novamente pelo desafio de JavaScript para receber um novo token.
Outro relato foi de outro colega que estava jogando no iPhone. Ele disse que não conseguia encontrar uma partida na fila (no sistema de requests a cada 3 segundos) e também foi bloqueado pelo Cloudflare. Digo isso porque ele foi obrigado a atualizar a página e passar pelo sistema de desafio de JavaScript novamente.
Pensei em tentar desabilitar o nível de segurança para o endpoint da API responsável pelo sistema de fila (3 segundos) e o sistema para verificar se a vez do oponente terminou (10 segundos), mas isso deixaria esse endpoint vulneravel, e também acho difícil reproduzir esses erros para debuggar e testar/tentar adivinhar outras soluções, pois não sei exatamente quais são as condições especificas para triggar esses erros. Então, queria perguntar aqui se há alguma solução existente para isso.