| Zusammenfassung | Sign-In mit Ethereum auf Discourse aktivieren | |
| Repository | GitHub - signinwithethereum/discourse-siwe-auth: Discourse plugin for SIWE authentication · GitHub | |
| Installationsanleitung | So installieren Sie Plugins in Discourse |
Ein Discourse-Plugin, das Benutzern die Authentifizierung mit ihrer Ethereum-Wallet mithilfe des Sign-In with Ethereum (SIWE)-Standards ermöglicht. Eingebettete Wallets (MetaMask, Safe usw.) funktionieren sofort. ENS-Namen und Avatare werden serverseitig aufgelöst, sofern ein RPC-Endpunkt konfiguriert ist.
Voraussetzungen
- Ein Discourse-Forum, das selbst gehostet wird oder von einem Anbieter gehostet wird, der Drittanbieter-Plugins unterstützt, wie z. B. Communiteq.
Installation
Greifen Sie auf die Datei app.yml Ihres Containers zu:
cd /var/discourse
nano containers/app.yml
Fügen Sie die Repository-URL des Plugins zum Hook after_code hinzu:
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 # <-- hinzugefügt
Halten Sie sich an das vorhandene Format der Zeile docker_manager.git; wenn diese Zeile nicht sudo -E -u discourse enthält, verwenden Sie stattdessen git clone https://github.com/signinwithethereum/discourse-siwe-auth.git.
Erstellen Sie den Container neu:
cd /var/discourse
./launcher rebuild app
Konfiguration
Nach der Installation finden Sie das Plugin unter Admin > Plugins und stellen sicher, dass es aktiviert ist:
Klicken Sie auf Einstellungen, um das Plugin zu konfigurieren:
Von hier aus können Sie die Anmeldeerklärung anpassen und optional eine WalletConnect / Reown-Projekt-ID hinzufügen. Ohne Projekt-ID sind nur eingebettete Wallets (MetaMask, Safe usw.) verfügbar.
Einstellungen
| Einstellung | Beschreibung |
|---|---|
| Discourse siwe enabled | Sign-In mit Ethereum-Authentifizierung aktivieren oder deaktivieren. |
| Siwe ethereum rpc url | Optional. Ein Ethereum JSON-RPC-Endpunkt, der für die ENS-Namen-/Avatar-Auflösung und die EIP-1271-Signaturüberprüfung verwendet wird (erforderlich für Smart-Contract-Wallets wie SAFE). Ein dedizierter Anbieter (Alchemy, Infura) wird empfohlen. Beispiel: https://mainnet.infura.io/v3/YOUR_KEY. |
| Siwe project ID | Optional. Eine WalletConnect / Reown-Projekt-ID. Ohne diese sind nur eingebettete Wallets (MetaMask, Safe usw.) verfügbar. Um WalletConnect zu aktivieren, erstellen Sie eine kostenlose Projekt-ID unter dashboard.reown.com. |
| Siwe statement | Die für Menschen lesbare Erklärung, die in der SIWE-Nachricht angezeigt wird. Standardmäßig “Sign in with Ethereum”. |
Funktionsweise
Wenn ein Benutzer auf die Ethereum-Anmelde-Schaltfläche klickt, öffnet das Plugin eine dedizierte Authentifizierung. Der Benutzer verbindet seine Wallet, signiert eine SIWE-Nachricht und wird über eine OmniAuth-Strategie auf der Serverseite authentifiziert.
Nach der ersten Anmeldung werden Benutzer aufgefordert, eine E-Mail-Adresse mit ihrem Konto zu verknüpfen. Wenn eine RPC-URL konfiguriert ist und die verbundene Adresse einen ENS-Namen hat, wird der Name serverseitig aufgelöst und überprüft und als Standardbenutzername vorgeschlagen. ENS-Avatare werden über den ENS-Metadatendienst abgerufen und als Profilfoto verwendet.
Alternativ können bestehende Benutzer ihre Ethereum-Konten über ihre Profileinstellungen verbinden.

