| Resumo | Ativar Sign-In with Ethereum no Discourse | |
| Repositório | GitHub - signinwithethereum/discourse-siwe-auth: Discourse plugin for SIWE authentication · GitHub | |
| Guia de Instalação | Como instalar plugins no Discourse |
Um plugin para Discourse que permite aos usuários autenticar-se usando sua carteira Ethereum por meio do padrão Sign-In with Ethereum (SIWE). Carteiras injetadas (MetaMask, Safe, etc.) funcionam imediatamente. Nomes ENS e avatares são resolvidos no lado do servidor quando um endpoint RPC está configurado.
Requisitos
- Um fórum Discourse auto-hospedado ou hospedado por um provedor que suporte plugins de terceiros, como Communiteq.
Instalação
Acesse o arquivo app.yml do seu container:
cd /var/discourse
nano containers/app.yml
Adicione a URL do repositório do plugin ao hook after_code:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
- sudo -E -u discourse git clone https://github.com/signinwithethereum/discourse-siwe-auth.git # <-- adicionado
Siga o formato existente da linha docker_manager.git; se ela não contiver sudo -E -u discourse, use git clone https://github.com/signinwithethereum/discourse-siwe-auth.git em vez disso.
Reconstrua o container:
cd /var/discourse
./launcher rebuild app
Configuração
Após a instalação, localize o plugin em Admin > Plugins e certifique-se de que ele está habilitado:
Clique em Configurações para configurar o plugin:
A partir daqui, você pode personalizar a declaração de login e opcionalmente adicionar um ID de projeto WalletConnect / Reown. Sem um ID de projeto, apenas carteiras injetadas (MetaMask, Safe, etc.) estarão disponíveis.
Configurações
| Configuração | Descrição |
|---|---|
| Discourse siwe enabled | Habilitar ou desabilitar a autenticação Sign-In with Ethereum. |
| Siwe ethereum rpc url | Opcional. Um endpoint JSON-RPC da Ethereum usado para resolução de nomes/avatares ENS e verificação de assinatura EIP-1271 (necessário para carteiras de contrato inteligente como SAFE). Recomenda-se um provedor dedicado (Alchemy, Infura). Exemplo: https://mainnet.infura.io/v3/SEU_CHAVE. |
| Siwe project ID | Opcional. Um ID de projeto WalletConnect / Reown. Sem ele, apenas carteiras injetadas (MetaMask, Safe, etc.) estarão disponíveis. Para habilitar o WalletConnect, crie um ID de projeto gratuito em dashboard.reown.com. |
| Siwe statement | A declaração legível exibida na mensagem SIWE. O padrão é “Sign in with Ethereum”. |
Como funciona
Quando um usuário clica no botão de login Ethereum, o plugin abre uma autenticação dedicada. O usuário conecta sua carteira, assina uma mensagem SIWE e é autenticado por meio de uma estratégia OmniAuth no lado do servidor.
Após o primeiro login, os usuários são solicitados a associar um endereço de e-mail à sua conta. Se uma URL RPC estiver configurada e o endereço conectado tiver um nome ENS, o nome será resolvido e verificado no lado do servidor, sendo sugerido como nome de usuário padrão. Avatares ENS são buscados por meio do serviço de metadados do ENS e usados como foto de perfil.
Alternativamente, usuários existentes podem conectar suas contas Ethereum por meio das configurações de perfil.

