Hallo,
Ich versuche, einen Anmeldevorgang für Discourse von meiner Frontend-App aus zu erstellen. Wie sollte ich das tun?
Danke ![]()
Hallo,
Ich versuche, einen Anmeldevorgang für Discourse von meiner Frontend-App aus zu erstellen. Wie sollte ich das tun?
Danke ![]()
Dies ist die übliche Lösung:
Wenn Sie Benutzer nur in Discourse verwalten, ist eine Weiterleitungs-Schaltfläche wahrscheinlich einfacher!
Danke für Ihre Antwort! Aber kann ich eine Art iFrame öffnen, damit sie wählen können, wie sie authentifiziert werden?
Nein, iframes werden nicht unterstützt.
Sie möchten entweder Benutzerkonten auf Ihrer übergeordneten Website verwalten und sich dann mit Discourse Connect authentifizieren oder einfach einen Link zu Ihrem Discourse haben.
Sie könnten zur Anmelderoute verlinken, um sie sofort aufzufordern? /login
Ich kann nicht wirklich verstehen, wie das zu verwenden ist. Ich meine, ich stelle mir etwas wie einen Login-Button auf meiner Website vor, und dann muss der Benutzer wählen, wie er authentifiziert wird, richtig? Ich meine, wie könnte der Ablauf für dieses Szenario aussehen?
Warum müssen sie sich auf Ihrer Website anmelden? Verwalten Sie dort Benutzerkonten?
Ich möchte in der Lage sein, Beiträge/Themen von meinem Frontend aus zu erstellen, daher müssen sie zuerst authentifiziert werden. Macht das Sinn?
OK, das ergibt Sinn. Im Grunde sagen Sie: „Ich möchte Teile der Benutzeroberfläche neu schreiben und nur über die API kommunizieren“?
Ich glaube nicht, dass Sie hier viel kostenlose Unterstützung dafür bekommen werden, aber schauen Sie sich Folgendes an:
https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield
Es gibt bereits Bemühungen, dies zu tun, insbesondere über Apps. Möglicherweise möchten Sie diese recherchieren, z. B.:
Es gab auch Fig, aber es ist noch nicht Open Source:
Aber beachten Sie den extrem hohen Aufwand für die anfängliche Entwicklung und Wartung, den diese Art von Lösungen erfordert. Ich glaube, die beiden besten Beispiele wurden aufgegeben (?).
Alternativ können Sie Ihre Website als Discourse-Instanz komplett (über Plugins und Theme-Komponenten) aufbauen, um nicht viele Elemente der Benutzeroberfläche neu schreiben zu müssen.
Ich verwende Discourse als meinen Identitätsanbieter und es funktioniert hervorragend. Sie können damit einen „Anmelden“-Link auf Ihrer Website erstellen, der Ihre Benutzer zu Ihrer Discourse-Instanz weiterleitet und, wenn sie bereits angemeldet sind oder nach Abschluss des Anmeldevorgangs, wird der Benutzer zur return_sso_url weitergeleitet, die Sie der Nutzlast hinzugefügt haben, mit den Benutzeranmeldeinformationen und Informationen. Diese return_sso_url kann eine Route auf Ihrer Website sein, die die authentifizierte Sitzung nach Ihren Wünschen speichert (z. B. ein Sitzungs-Cookie), sobald sie die Nutzlast von Discourse empfängt.
FWIW, Lexicon wird nicht aufgegeben und befindet sich noch in der aktiven Entwicklung.
@Roie_Natan, wenn Sie mit Javascript vertraut sind, könnten Sie sich den Quellcode von Lexicon ansehen, um zu sehen, wie dies erreicht wurde.
Wie @merefield jedoch darauf hingewiesen hat, gibt es bereits Beiträge, die Ihnen bei der Lösung helfen könnten.
Hier ist eine Ressource, die sich mit Benutzersitzungen befasst: Storing extra data about a user's session - #3 by sam
Und Sie könnten auch den Authentifizierungsfluss von @pmusarajs App nützlich finden:
Das ist großartig! Danke für die Korrektur.