05.10.2026 · Signal Titans Editorial
Como a Yuphora implementou a detecção de localização no Next.js sem solicitar permissões
Saiba como a plataforma de notícias Yuphora usa middleware do Next.js, cabeçalhos de geolocalização e fusos horários para exibir edições locais sem avisos no navegador.

A plataforma de notícias Yuphora, publicada pela APPDOOK, detalhou como disponibiliza edições de conteúdo localizadas em 13 países sem solicitar permissões explícitas de geolocalização ao navegador dos leitores. Ao mover a lógica de seleção para o middleware do Next.js, a plataforma determina a localização do usuário antes de renderizar qualquer página, dependendo exclusivamente dos dados já existentes na requisição.
Uma ordem hierárquica de resolução alternativa
Para selecionar uma edição sem exibir avisos de localização, a camada de proxy da Yuphora avalia quatro sinalizações contextuais em sequência. Se o leitor já tiver selecionado uma edição manualmente, um cookie armazenado recebe a prioridade máxima para atender a usuários de VPN ou preferências explícitas. Caso não exista um cookie, o middleware verifica os cabeçalhos de geolocalização da rede de hospedagem, derivados do endereço IP do usuário. Se esses cabeçalhos estiverem ausentes, o sistema utiliza o fuso horário IANA do dispositivo como alternativa. Se todos os sinais falharem, o sistema adota como padrão a edição dos Estados Unidos.
Validação de cabeçalhos e filtragem de fusos horários
A equipe enfrentou diversos cenários de exceção ao implementar essa cadeia de verificação. Os cabeçalhos de rede do provedor nem sempre contêm códigos de país ISO válidos; serviços como a Cloudflare utilizam identificadores não padronizados, como XX para origens desconhecidas ou códigos numéricos para tráfego via Tor. O middleware elimina essas inconsistências validando os códigos de país com base em um formato de duas letras maiúsculas.
Os fusos horários também apresentaram desafios de precisão. Enquanto zonas como Asia/Kolkata ou Australia/Perth se mapeiam com clareza para países ou cidades específicos, muitos fusos horários abrangem múltiplos países. A Yuphora omitiu completamente os fusos horários ambíguos de sua tabela de consulta, preferindo recorrer à edição padrão em vez de exibir um palpite regional incorreto.
Segurança de cabeçalhos e preservação de cache
Para impedir que os clientes forjem atributos de localização, o middleware do Next.js exclui quaisquer cabeçalhos de requisição local recebidos antes de gravar seus próprios valores verificados, como x-user-country, para as rotas internas das páginas. Além disso, os atributos de cidade e região só são repassados quando a edição solicitada corresponde exatamente ao país detectado do leitor.
Para manter o alto desempenho em camadas de cache de CDN e proxy, como Nginx ou Cloudflare, a Yuphora evita definir cookies de localização em páginas estáticas de artigos. Como a definição de cookies HTTP impede que os caches de borda armazenem conteúdo voltado para o tráfego de busca, o middleware encerra a execução antecipadamente para caminhos sob /news/, adiando a criação do cookie até que o leitor acesse uma página dependente de edição.
Ilustração editorial gerada por IA; não é uma fotografia documental.
Fonte: Local news without a location prompt: how we pick a reader's edition in Next.js