| Résumé | Activer la connexion avec Ethereum sur Discourse | |
| Dépôt | GitHub - signinwithethereum/discourse-siwe-auth: Discourse plugin for SIWE authentication · GitHub | |
| Guide d’installation | Comment installer des plugins dans Discourse |
Un plugin Discourse permettant aux utilisateurs de s’authentifier avec leur portefeuille Ethereum en utilisant
le standard Sign-In with Ethereum (SIWE). Les portefeuilles injectés
(MetaMask, Safe, etc.) fonctionnent immédiatement. Les noms ENS et les avatars sont résolus
côté serveur lorsqu’un point de terminaison RPC est configuré.
Prérequis
- Un forum Discourse auto-hébergé ou hébergé chez un fournisseur prenant en charge
les plugins tiers, comme Communiteq.
Installation
Accédez au fichier app.yml de votre conteneur :
cd /var/discourse
nano containers/app.yml
Ajoutez l’URL du dépôt du plugin au crochet 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 # <-- ajouté
Suivez le format existant de la ligne docker_manager.git ; si elle ne contient
pas sudo -E -u discourse, utilisez alors
git clone https://github.com/signinwithethereum/discourse-siwe-auth.git à la place.
Reconstruisez le conteneur :
cd /var/discourse
./launcher rebuild app
Configuration
Après l’installation, trouvez le plugin sous Admin > Plugins et assurez-vous qu’il
est activé :
Cliquez sur Paramètres pour configurer le plugin :
À partir d’ici, vous pouvez personnaliser la phrase de connexion et ajouter optionnellement un
ID de projet WalletConnect / Reown. Sans ID de projet, seuls les portefeuilles injectés
(MetaMask, Safe, etc.) sont disponibles.
Paramètres
| Paramètre | Description |
|---|---|
| Discourse siwe enabled | Activer ou désactiver l’authentification Sign-In with Ethereum. |
| Siwe ethereum rpc url | Optionnel. Un point de terminaison JSON-RPC Ethereum utilisé pour la résolution des noms/avatars ENS et la vérification des signatures EIP-1271 (requis pour les portefeuilles de contrats intelligents comme SAFE). Un fournisseur dédié (Alchemy, Infura) est recommandé. Exemple : https://mainnet.infura.io/v3/VOTRE_CLE. |
| Siwe project ID | Optionnel. Un ID de projet WalletConnect / Reown. Sans celui-ci, seuls les portefeuilles injectés (MetaMask, Safe, etc.) sont disponibles. Pour activer WalletConnect, créez un ID de projet gratuit sur dashboard.reown.com. |
| Siwe statement | La phrase lisible par l’homme affichée dans le message SIWE. Par défaut : “Sign in with Ethereum”. |
Fonctionnement
Lorsqu’un utilisateur clique sur le bouton de connexion Ethereum, le plugin ouvre une
authentification dédiée. L’utilisateur connecte son portefeuille, signe un message SIWE,
et est authentifié via une stratégie OmniAuth côté serveur.
Après la première connexion, les utilisateurs sont invités à associer une adresse e-mail à leur
compte. Si une URL RPC est configurée et que l’adresse connectée possède un nom ENS,
le nom est résolu et vérifié côté serveur, puis suggéré comme nom d’utilisateur par défaut.
Les avatars ENS sont récupérés via le service de métadonnées ENS et utilisés comme photo de profil.
Alternativement, les utilisateurs existants peuvent connecter leurs comptes Ethereum via
leurs paramètres de profil.

