Hallo, Mitglieder!
Ich hoffe, es geht Ihnen allen gut.
Ich habe ein Diskursforum erstellt und versucht, es mit meiner Website (ASP.NET) zu verbinden.
Zuerst habe ich Discourse-Connect verwendet und es hat funktioniert. Mit Discourse-Connect können sich Benutzer jedoch nicht im Forum anmelden und registrieren.
Daher habe ich versucht, mich über die Discourse-API im Forum anzumelden, aber es hat nicht funktioniert.
Ich habe viele Dokumentationen gelesen, aber keine richtige Lösung gefunden.
Bitte helfen Sie mir, dieses Problem zu lösen, oder sagen Sie mir, ob es möglich ist, und wie die richtige Lösung aussieht.
Mit freundlichen Grüßen
Sie haben zwei Möglichkeiten:
-
Richten Sie DiscourseConnect so ein, dass sich Benutzer auf Ihrer Website registrieren und anmelden, und wenn sie versuchen, sich in Ihrem Forum anzumelden, geschieht dies automatisch. Dies ist die übliche Einrichtung. Wenn Sie die Dinge so konfigurieren, findet die gesamte Registrierung und Anmeldung auf Ihrer Website statt. Die Anmeldung und Registrierung mit Benutzername/Passwort in Ihrem Forum wird deaktiviert.
-
Richten Sie DiscourseConnect so ein, dass sich Benutzer in Ihrem Forum registrieren und anmelden, und wenn sie versuchen, sich auf Ihrer/n Website(s) anzumelden, geschieht dies automatisch. Dies wird als Einrichtung von Discourse als DiscourseConnect-Anbieter bezeichnet, und wie das geht, finden Sie hier.
Vielen Dank für Ihre schnelle Antwort. Gibt es Möglichkeiten ohne DiscourseConnect?
Warum möchtest du es nicht benutzen?
Natürlich kannst du etwas selbst implementieren, aber du wirst jahrelange Erfahrung wegwerfen, die in den Aufbau von DiscourseConnect geflossen ist. Bevor du dich also entscheidest, diese riesige Aufgabe zu übernehmen, musst du entscheiden, welche guten Gründe du hast, etwas selbst zu bauen, anstatt das zu verwenden, was bereits verfügbar ist.
Natürlich kenne ich DiscourseConnect als exzellente Funktion.
Aber mein Ziel ist die lokale Anmeldung und Registrierung im Discourse Forum.
Deshalb habe ich versucht, die Discourse API zu nutzen.
Gibt es keine Möglichkeiten mit der Discourse API?
Vielen Dank.
Mit freundlichen Grüßen
Ok, wenn Sie sich lokal bei Discourse anmelden und registrieren möchten, teilen Sie mir bitte mit, welche Art von Integration mit Ihrer Website Sie suchen.
Mein Zweck ist es, Folgendes zu tun:
- Wenn sich der Benutzer bei meiner Website anmeldet, wird er beim Aufrufen des Forums automatisch im Forum angemeldet.
- Und der Benutzer kann sich im Forum anmelden und registrieren.
- Wenn sich der Benutzer im Forum anmeldet, wird er beim Aufrufen meiner Website automatisch auf meiner Website angemeldet.
Mit DiscourseConnect kann ich 1) und 3) durchführen, aber nicht 2).
Aber 2) ist für uns sehr wichtig.
Wenn Sie Benutzern erlauben, sich an zwei Stellen zu registrieren, wird es schnell unübersichtlich, und deshalb müssen Sie eine Wahl treffen: Entweder registrieren sich Benutzer auf Ihrer Website oder sie registrieren sich in Ihrem Forum, aber nicht beides.
Warum ist das so wichtig für Sie?
Vielen Dank für Ihre Hilfe.
Mein Chef möchte es jedoch.
Bitte überprüfen Sie meine Leistung.
Ich habe versucht, mit der Discourse API wie folgt zu arbeiten:
- GET ‘/session/csrf’ aufrufen und CSRF-Token und Cookie erhalten
- POST ‘/session’ aufrufen mit Header: ‘X-CSRF-Token’=‘CSRF-Token’, ‘Cookie’ = ‘erhaltenes Cookie’, Daten: Login, Passwort, Zeitzone, Second-Factor-Methode, Authenticity-Token
- POST ‘/login’ aufrufen mit Header: ‘Cookie’=‘erhaltenes Cookie von /session’
Daten: Benutzername, Passwort, Weiterleitung
Alle Protokolle sind identisch mit dem Discourse-Login-Workflow.
Aber wenn ich zum Discourse-Forum weiterleite, ist der Benutzer nicht angemeldet.
Wie kann ich dieses Problem lösen? Was ist falsch?
Vielen Dank nochmals für Ihre Hilfe.
PS. Mein Server ist ein Ubuntu Nginx Server.
Dann müssen Sie Ihrem Chef erklären, dass es eine sehr schlechte Idee ist, wenn sich Benutzer an mehreren Stellen registrieren. Die Dinge werden ein riesiges Durcheinander. Erklären Sie ihm, was passiert, wenn Sie sich auf der Website mit dem BenutzernamenA und im Forum mit dem BenutzernamenB mit derselben E-Mail-Adresse registrieren! Oder was passieren würde, wenn der Benutzer sein Passwort nur auf der Website oder nur in Discourse ändert. Dann werden die Dinge kaputt gehen!
Was Sie getan haben, meldet Ihren SERVER im Forum als Benutzer an. Es werden keine Sitzungs-Cookies für den Benutzer gesetzt, daher wird der Benutzer nicht im Forum angemeldet.
Darüber hinaus haben Sie offenbar das Klartextpasswort des Benutzers zur Verfügung. Das ist eine SEHR SCHLECHTE Idee. Sie sollten immer einen Hash (Einwegverschlüsselung) eines Passworts speichern und niemals das Klartextpasswort. Wenn Ihre Datenbank gehackt wird, sind alle Passwörter Ihrer Benutzer dem Angreifer bekannt. Eine weitere gute Sache, die Sie Ihrem Chef erklären können.
Ich habe Ihnen drei gute Gründe genannt, mit denen Sie Ihren Chef überzeugen können, die Dinge anders zu machen. Dies wird nur zu riesigen Problemen führen. Ich kann Ihnen nicht helfen, dies zum Laufen zu bringen, da es nicht funktionieren wird. Selbst wenn Sie es zum Laufen bringen, wird es nur kurzfristig funktionieren.
Verstanden.
Ich werde meinem Chef das erklären.
Vielen Dank.
Ich möchte mehr mit Ihnen besprechen (natürlich nicht darüber).
Mit freundlichen Grüßen
Bitte helfen Sie mir noch einmal.
Mein Forum-Server hat eine Hauptdomain und mehrere Subdomains.
Kann ich mehrere Discourse-Foren auf jeder Domain mit einer Datenbank erstellen?
Und kann ich es so aufbauen?:
- Auf der Hauptdomain ist ein lokaler Login und eine Registrierung möglich.
- Auf den Subdomains mit DiscourseConnect Verbindung zu meinen Websites.
Wenn möglich, bitte leiten Sie mich beim Aufbau an.
Wenn unmöglich, nennen Sie mir bitte den Grund.
Danke.
Ja, das ist möglich.
- Suchen Sie in diesem Forum nach „multisite“.
- Richten Sie die Hauptseite als DiscourseConnect-Anbieter ein
- Richten Sie die Subdomain-Seiten als DiscourseConnect-Client ein