Sign-In mit Ethereum-Plugin

|||
-|-|-|
:information_source: | Zusammenfassung | Sign-In with Ethereum in Discourse aktivieren
:hammer_and_wrench::sob: - | Original-Repository | GitHub - spruceid/discourse-siwe-auth: Discourse plugin for SIWE authentication
:hammer_and_wrench: :white_check_mark: | Funktionierendes Repository | GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication
:open_book: | Installationsanleitung | So installieren Sie Plugins in Discourse

Funktionen

Dieses Plugin ermöglicht Sign-In with Ethereum in Discourse.

Konfiguration

Anforderungen

  • Ein Discourse-Forum, das selbst gehostet ist oder bei einem Anbieter gehostet wird, der Plugins von Drittanbietern zulässt, wie z. B. Communiteq.

Hinweis

Das Sign-In with Ethereum-Plugin erfordert immer noch, dass Benutzer eine E-Mail-Adresse eingeben, um ihre Konten nach der erstmaligen Authentifizierung zu verknüpfen. Wenn der Benutzer eine ENS-Adresse besitzt, wird diese als Standardbenutzername ausgewählt. Sobald eine E-Mail-Adresse verknüpft ist, können sich Benutzer jederzeit über die SIWE-Option anmelden.

Plugin aktivieren

Um das Plugin auf Ihrem selbst gehosteten Discourse zu installieren und zu aktivieren, verwenden Sie die folgende Methode: Greifen Sie auf Ihre Container-app.yml-Datei zu (befindet sich unter /var/discourse/containers/).

cd /var/discourse
nano containers/app.yml

Fügen Sie die Repository-URL des Plugins zu Ihrer Container-app.yml-Datei hinzu:

hooks:
  before_code:                             # <-- hinzugefügt
    - exec:                                # <-- hinzugefügt
        cmd:                               # <-- hinzugefügt
          - gem install rubyzip            # <-- hinzugefügt
  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/spruceid/discourse-siwe-auth.git   # <-- hinzugefügt

Folgen Sie dem vorhandenen Format der docker_manager.git-Zeile. Wenn sie nicht sudo -E -u discourse enthält, fügen Sie - git clone https://github.com/spruceid/discourse-siwe-auth.git ein.

Bauen Sie den Container neu:

cd /var/discourse
./launcher rebuild app

Um es zu deaktivieren, entfernen Sie entweder das Plugin oder deaktivieren Sie “discourse siwe enabled” unter (Admin-Einstellungen → Plugins → discourse-siwe → discourse siwe enabled).

Discourse Plugins Plugin in den Einstellungen aktivieren

WalletConnect aktivieren

WalletConnect-Unterstützung kann über Infura bereitgestellt werden. Erstellen Sie ein neues Infura-Projekt, um eine neue Infura-Projekt-ID zu erhalten. Gehen Sie dann zu den Einstellungen (wie zuvor) und fügen Sie die ID dort ein und klicken Sie auf das Häkchen. Infura-ID zum Plugin-Einstellungen hinzufügen

JSON RPC

Alternativ können Sie die WalletConnect-Instanz mit JSON RPC-Endpunkten konfigurieren, wie unten gezeigt:

Dadurch wird die Infura-ID-Konfigurationsoption für WalletConnect überschrieben. Andere Verwendungen einer Infura-ID werden nicht beeinträchtigt.

JSON RPC-Endpunkte hinzufügen

Die Nachrichtenanweisung bearbeiten

Standardmäßig wird den Nachrichten eine Anweisung hinzugefügt: “Sign-in to Discourse via Ethereum”. Um diese Anweisung zu bearbeiten, greifen Sie auf die Einstellungen zu (wie zuvor) und aktualisieren Sie sie. Infura-ID zum Plugin-Einstellungen hinzufügen

14 „Gefällt mir“

Hier gibt es eine Diskussion über Abhängigkeiten Discourse can't find gems specified in the plugin

Auf GitHub gefunden, scheint auch aktiv entwickelt zu werden. Es scheint Web3-Logins zu ermöglichen (erfordert nach der Anmeldung mit der Wallet immer noch E-Mail-Adressen).

Der Entwickler hat jedoch ein Problem, das die Installation des Plugins und das anschließende Bootstrapping von Discourse verhindert. Alle Details im untenstehenden Issue. Vielleicht ist es ein sehr einfaches Problem und jemand hier kann einen PR für den Entwickler einreichen.

1 „Gefällt mir“

Halte mein Bier :wink:
Lösung im Github-Issue.

3 „Gefällt mir“

Das ist großartig, ich probiere es sofort aus. Ich hoffe, das hilft auch dem Entwickler :grinning_face:

EDIT: Ich scheine mit demselben Fehler zu enden, obwohl es so aussieht, als ob das Gem installiert wird:

version 2.3.0.
Successfully installed rubyzip-2.3.2
1 gem installed
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 777 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Können Sie das bitte tun?

2 „Gefällt mir“

Beim Durchgehen der Protokolle poste ich Dinge, die meiner Meinung nach relevant sein könnten.

@moderators vielleicht eine Themenaufteilung dafür? Es gibt kein offizielles Thema von diesem Plugin, ich glaube nicht, dass der Entwickler auf Meta ist.

I, [2022-07-04T16:43:46.394301 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::ConflictError: Unable to activate eth-0.5.1, because openssl-3.0.0 conflicts with openssl (~> 2.2)

Ich sehe im Moment keine anderen Fehler (oder ich übersehe sie, die Protokolle sind lang).

1 „Gefällt mir“

Um ehrlich zu sein, ich folge nicht dem Kern dessen, was hier vor sich geht. :slightly_smiling_face: @RGJ und @michaeld haben die Befugnis zu teilen, also werden sie vielleicht die Ehre haben und es auf sensiblere Weise als ich verwalten. :slightly_smiling_face::crossed_fingers: (oder alternativ den Beitrag auswählen, von dem geteilt werden soll, die Kategorie benennen, in die er gehen soll, und mir einen Titel mitteilen, den ich ihm geben soll :+1:)

1 „Gefällt mir“

Mein Vorschlag ist hier aufgeteilt:

https://meta.discourse.org/t/web-3-0-features/203321/19?u=marcp

Die am besten geeignete Kategorie wäre Support oder #plugins (ich bin mir nicht sicher… wie gehen wir mit Plugins um, die nicht von einem Mitglied von Meta entwickelt wurden… vielleicht tritt er Meta bei oder wir können ihn eines Tages über GitHub zu Meta einladen?)

EDIT:

Das scheint der Entwickler zu sein, also ist er auf Meta? @w4ll3

@michaeld hat gestern einen PR dafür erstellt, aber er ist noch nicht gemerged. Sie können in der Zwischenzeit GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication verwenden.

3 „Gefällt mir“

Kann bestätigen, dass dies funktioniert! Danke, Michael.

1 „Gefällt mir“

Zusammenfassend lässt sich sagen, dass Sie sowohl den before_code benötigen, wie in der Issue Cannot Install Plugin on Self-Hosted Discourse server - rbsecp256k1 · Issue #15 · spruceid/discourse-siwe-auth · GitHub beschrieben, ALS AUCH die neuere Version des eth-Gems, für das ich den (derzeit nicht gemergten) PR erstellt habe.

5 „Gefällt mir“

Hier etwas spät im offiziellen Forum, aber hey – Rocco vom Spruce-Team.

Danke nochmals @michaeld für die Fehlerbehebungen, das hat es behoben und wir haben die Dokumentation von unserer Seite aktualisiert. Danke auch, dass du das alles angesprochen hast – wir entwickeln und pflegen die Dinge rund um Sign-In with Ethereum weiterhin aktiv.

Ich war auch neugierig – gibt es einen Weg, dies schließlich zu einem offiziell unterstützten Plugin zu machen :grinning: – wir lieben Discourse und wollen herausfinden, wie wir diese Funktionalität auf Instanzen erweitern können, die nicht selbst gehostet sind.

2 „Gefällt mir“

Nur zur Klarstellung: Communiteq unterstützt dieses Plugin auch auf unseren Managed-Hosting-Plänen. Es ist ab dem Professional-Plan verfügbar.

3 „Gefällt mir“

Entschuldigen Sie das bitte!

Keine Entschuldigung nötig! Das offizielle Hosting hat es (noch?) nicht. Ich wollte nur unser Engagement für diese Web3-Plugins hervorheben.

3 „Gefällt mir“

Leider keine offiziell unterstützte Plugin.

Aber auf jeden Fall ein Lob für die Unterstützung von Communiteq! Alles, was zur Unterstützung von Web3-Nutzern beiträgt, ist wirklich großartig.

Von unserer Seite aus arbeiten wir an verschiedenen Möglichkeiten, die Einführung von Sign-In with Ethereum zu unterstützen, und Discourse stand immer ganz oben auf unserer Liste. Deshalb haben wir, nachdem wir es EIP-4361 standardisiert hatten, das Plugin erstellt. Das andere, was uns wichtig war, ist, was wir noch hinzufügen können – wobei der benutzerdefinierte RPC-Anbieter eines der ersten Elemente ist.

3 „Gefällt mir“

Dieses Plugin funktioniert bei mir nicht, es gibt ein Problem mit dem Plugin, das nicht installiert werden kann. Kann mir jemand eine Alternative nennen oder bei diesem helfen @michaeld @RGJ

Sie müssen Details mitteilen, wenn Sie Hilfe wünschen.

1 „Gefällt mir“

@RGJ Wenn ich versuche, dieses Plugin zu installieren, schlägt der Wiederaufbau mit diesem Fehler fehl

Sie geben das Gem rbsecp256k1 in /var/www/discourse/plugins/discourse-siwe-auth/plugin.rb an, jedoch existiert es nicht!
Gesucht nach: /var/www/discourse/plugins/discourse-siwe-auth/gems/2.7.6/specifications/rbsecp256k1-5.1.0.gemspec