Criando uma nova comunidade: Auth Básica quebra o plugin WP-Discourse

Estou configurando sites Wordpress e Discourse (auto-hospedados) usando o plug-in WP-Discourse.

Consegui habilitar a autenticação básica HTTP em ambos os sites para mantê-los inacessíveis até que estejam prontos para serem lançados (bloqueando efetivamente o acesso do público em geral, bem como dos motores de busca).

Wordpress (informacional para quem busca realizar algo semelhante)

Discourse

O plug-in WP-Discourse funciona bem até que a autenticação básica seja habilitada no servidor Discourse.

(Editar) Este é o erro no log do plug-in WP-Discourse no lado do Wordpress: [2025-02-14 18:20:06] connection.INFO: check_connection_status.failed_to_connect {\"error\":\"wpdc_response_error\",\"message\":\"Uma resposta inválida foi retornada do Discourse\",\"http_code\":401,\"http_body\":\"\u003chtml\u003e\\r\\n\u003chead\u003e\u003ctitle\u003e401 Autorização Necessária\u003c/title\u003e\u003c/head\u003e\\r\\n\u003cbody\u003e\\r\\n\u003ccenter\u003e\u003ch1\u003e401 Autorização Necessária\u003c/h1\u003e\u003c/center\u003e\\r\\n\u003chr\u003e\u003ccenter\u003enginx\u003c/center\u003e\\r\\n\u003c/body\u003e\\r\\n\u003c/html\u003e\\r\\n\"}

Alguma ideia sobre como excluir APIs de exigir autenticação básica HTTP no Discourse?

Obrigado!

Você conseguiu? Não tenho certeza se o Discourse funcionará com autenticação básica; tentei uma vez, mas desisti. Parece ainda mais provável que isso possa quebrar o wp-discourse (ah, e eu estava certo sobre isso!). Se você tivesse sucesso, não estaria escrevendo esta mensagem. :wink:

Para sites de staging do Discourse, geralmente apenas configuro “login obrigatório” e isso mantém os motores de busca afastados. Alguém com login ainda pode fazer login, mas geralmente é isso que você quer.

Se for inaceitável que seus sites estejam disponíveis para qualquer pessoa, talvez você deva usar um firewall e limitar o acesso ao seu IP.

Você pode dizer a uma autenticação básica para permitir o acesso do IP do seu servidor Discourse? Talvez: Allow access from one IP, require basic auth from all other sources - Traefik v2 - Traefik Labs Community Forum

Obrigado, essa dica me ajudou a resolver o problema. Aqui está a seção atualizada de autenticação básica do app.yml no meu servidor Discourse (nenhuma alteração foi necessária no servidor Wordpress):

# autenticação básica
  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# Allow bypass cache from localhost"
       to: |
            # Permitir bypass da autenticação básica para o plugin WP-Discourse
            geo $authentication {
            default "Credenciais que você deve fornecer.";
            127.0.0.1 "off";
            151.101.3.55/32 "off";
            }
            # Permitir bypass de cache de localhost
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic on"
       to: "auth_basic $authentication"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic_user_file /etc/nginx/htpasswd"
       to: "auth_basic_user_file /etc/nginx/htpasswd"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "location = /srv/status {"
       to: "location = /srv/status {
           auth_basic off;"
    - file:
       path: "/etc/nginx/htpasswd"
       contents: |
         alfred:$apr1$jSdLuHyZ$faWxYGjnmLd/zRC6UMsRs1

151.101.3.55 é o endereço IP público (exemplo) do meu servidor Wordpress. O WP-Discourse agora relata:
Uma tela em branco exibe o texto com borda verde, "Você está conectado ao Discord!" (Legenda gerada por IA)

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.