Como o CloudFlare ofusca o endereço IP do visitante, seria útil poder capturar campos específicos do CloudFlare, como CF-Connecting-IP, X-Forwarded-For e CF-IPCountry, a partir do cabeçalho HTTP que eles inserem e, em seguida, relatá-los condicionalmente na página Admin > Usuários > nome de usuário, além dos campos de IP (não úteis com o CF) e do botão de Consulta de IP.
Poderíamos ter esses campos disponíveis nesta página quando os campos de cabeçalho CF-* estiverem presentes?
Uma opção que seria útil (e que já usei em outros aplicativos Rails) é simplesmente usar esses campos no lugar do IP, se estiverem disponíveis. Faz algum tempo desde que implementei isso, mas, se me lembro corretamente, acredito que apenas definiríamos o IP do visitante como o IP, a menos que CF-Connecting-IP exista… mas acho que havia algo mais que eu havia feito com X-Forwarded-For…
Se você usar o modelo fornecido pela Cloudflare, tudo isso será tratado automaticamente. Isso, na verdade, já está disponível no Discourse há quatro ou cinco anos.
Supondo que você tenha seguido a instalação padrão:
cd /var/discourse
nano containers/app.yml
adicione esta linha abaixo de templates:
- "templates/cloudflare.template.yml"
Em seguida, basta reconstruir:
./launcher rebuild app
A partir desse momento, sua instalação mostrará os endereços de e-mail reais dos usuários.
Isso é fantástico, Stephen, obrigado! Uma coisa tão simples que provavelmente deveria estar incluída e comentada por padrão ou documentada em algum lugar. Pelo menos agora é possível encontrá-la aqui por meio de pesquisas por “CloudFlare” relacionadas a isso. Nem me passou pela cabeça olhar na pasta templates!