Falscher Authentifizierungsanbieter für Entwicklungs-/Testzwecke

:information_source: Nur für die lokale Entwicklung. Nicht für Produktionsseiten geeignet

Wenn Sie lokal an Discourse arbeiten, ist es hilfreich, alle verschiedenen Anmeldeverfahren testen zu können. Meistens interessiert uns nicht der eigentliche Authentifizierungsprozess, sondern nur, wie Discourse auf verschiedene Eingaben reagiert. Zum Beispiel:

  • Was passiert, wenn die E-Mail-Adresse nicht verifiziert ist?
  • Was passiert, wenn der Authentifizierungsanbieter keine E-Mail-Adresse sendet?
  • Was passiert, wenn der Authentifizierungsanbieter keinen Benutzernamen sendet?
  • Was passiert, wenn die E-Mail-Adresse übereinstimmt, aber nicht die UID?
  • Wie funktionieren Einladungen, wenn eine externe Authentifizierung verwendet wird?
  • Wie sieht der Anmeldebildschirm aus?
  • (Ich könnte hier endlos weitermachen… aber Sie haben die Idee)

Bisher bestand die einzige echte Option darin, „echte Google/Twitter/OAuth2/etc.-Authentifizierung in Ihrer Entwicklungsumgebung einzurichten“. Das funktioniert, ist aber extrem mühsam, und Sie sind dann gezwungen, mehrere Google-/Twitter-Konten zu erstellen, um verschiedene Kombinationen zu testen.

Ich habe etwas entwickelt, das etwas schlanker ist:

Wenn Sie dieses Plugin lokal installieren, erhalten Sie einen gefälschten Authentifizierungsanbieter. Für Discourse funktioniert er genauso wie jeder andere Anbieter (z. B. Google, Twitter, OAuth2, OIDC usw.).

Wenn Sie den Anmeldevorgang starten, wird Ihnen dieser Bildschirm angezeigt, auf dem Sie manuell beliebige Daten eingeben können. Die übermittelten Werte werden über ein Cookie gespeichert, sodass Sie dieselbe Aktion leicht wiederholen können. Die Felder entsprechen dem Omniauth Auth Hash Schema.

Es verwendet das ManagedAuthenticator-System, sodass die Daten in der Tabelle user_associated_accounts mit einem provider_name von developmentauth gespeichert werden.


Es unterstützt auch DiscourseConnect! Um dies auszuprobieren, installieren Sie einfach das Plugin und aktivieren Sie die Einstellung enable_discourse_connect. Beim nächsten Anmelden sehen Sie alle DiscourseConnect-Felder bereit zur Verwendung.


Bitte probieren Sie es beim nächsten Mal aus, wenn Sie an der Authentifizierung arbeiten, und lassen Sie mich wissen, ob etwas verbessert werden kann :slight_smile:

:philosoraptor: Beachten Sie, dass dies der unsicherste Authentifizierungs-Plugin ist, das je erfunden wurde. Daher wird es sich weigern, in einer Produktionsumgebung zu starten, und Sie müssen die Umgebungsvariable DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE auf 1 setzen, damit es funktioniert.

17 „Gefällt mir“

Hallo, dieses Plugin funktioniert nicht mit Ember CLI. Wenn ich Details eingebe und auf „Verbinden