Game Dev - Benutzerregistrierung & Datenbankverwaltung (Rat benötigt)

Hallo Leute, ich hoffe, es geht euch gut.

Dies ist nur eine allgemeine Bitte um Hilfe bei der Ausrichtung – wir möchten die Registrierungs-/Benutzerverwaltung/Datenbank von Discourse verwenden, um dieselben Details in unserer externen Spieldatenbank zu registrieren (damit der Spieler dieselben Anmeldedaten für die Anmeldung zum Spiel verwenden kann).

Derzeit durchsuche ich das Git-Repository, um eine Vorstellung davon zu bekommen, wie die Dinge funktionieren usw.

Der Gesamtplan, wie erwähnt, ist, dass Discourse, wenn sich ein Benutzer im Forum registriert, die Benutzerdetails in unserer Spieldatenbank (gehostet auf einem anderen VPS) registriert. Wenn sie ihr Passwort oder ihre E-Mail-Adresse aktualisieren, wird dies auch in unserer SQL-Datenbank widergespiegelt.

Ich habe bereits seit einigen Stunden ein selbst gehostetes Discourse-Forum am Laufen und lerne daher derzeit noch Discourse.

Meine Frage ist also, gibt es irgendwo in Discourse, wo wir zuerst nachsehen sollten, um mit dieser Arbeit zu beginnen?

1 „Gefällt mir“

Die magischen Worte sind „DiscourseConnect“ und „Identitätsanbieter“ :wink:

4 „Gefällt mir“

Super, danke für die Zusendung!

3 „Gefällt mir“

Dies scheint so zu sein, dass SSO / DiscourseConnect E-Mails von einem Drittanbieter validieren lassen muss.

Dies ist ein Problem für unsere spezielle Einrichtung, da wir möchten, dass Discourse E-Mails und die Kontenverwaltung wie gewohnt validiert, aber die Datenbankinformationen einfach an unsere Spieldatenbank weitergibt.

Also im Wesentlichen eine Umkehrung von SSO.

Einfach ausgedrückt: Discourse muss alles handhaben, ich muss nur einige der Benutzerinformationen aus seiner Datenbank abrufen.

Wenn Sie Discourse als Identitätsanbieter verwenden, wie Richard vorgeschlagen hat, übernimmt Discourse die E-Mail-Validierung für Sie.

Wenn der Benutzer den SSO-Flow auf Discourse durchläuft und dann zurück zu Ihrer Website gelangt, können Sie die Antwort, die Discourse als eingebetteten Abfragezeichenfolgen-Parameter zum sso-Parameter hinzufügt, extrahieren und ordnungsgemäß mit dem bereitgestellten sig validieren. Diese Antwort enthält E-Mail, Benutzername, Name, Gruppen usw. (aber kein Passwort, das wäre keine gute Idee).

2 „Gefällt mir“

Hm okay.

Wie bereits erwähnt, ist es keine Website, an die Discourse die Informationen senden wird.

Es ist ein Spielserver – also nur ein VPS mit laufendem MySQL.

Der alte Workflow war dieser:
Unity füllt die SQL-Tabellen, wenn Benutzer „ein Konto registrieren“.

Ich möchte Discourse als Anbieter für Registrierung und Kontoverwaltung nutzen.

D. h., sie registrieren sich bei Discourse und verwenden diese Informationen, um sich beim Spielserver anzumelden (über den Unity-Client).

Ich brauche also eine Möglichkeit, die Discourse-Benutzerdaten zuverlässig an die MySQL-Datenbank zu übertragen.
(Beide befinden sich auf demselben Rechner).

Dafür haben wir einen Foreign Data Wrapper für Postgres –> MySQL eingerichtet und dann Trigger, um sie entsprechend zu befüllen.

Wenn der Benutzer dann seine (Discourse-)E-Mail-Adresse und sein Passwort im Spiel eingibt, kann er sich – theoretisch – anmelden.

Das andere Problem, über das ich kürzlich gelesen habe, war die Passwortverschlüsselung, die von Discourse verwendet wird (was aus vielen Gründen gut ist), aber bedeutet, dass Hashes eindeutig sind, sodass dies nicht auf diese Weise erfolgen kann.

Also wieder, es gibt keine Website für das SSO, nur Discourse und ein weiterer VPS, auf dem der Videospielserver läuft, mit dem sich Clients verbinden.