Salut tout le monde, j’espère que vous allez bien.
Ceci est juste une demande générale d’aide pour m’orienter : nous voulons utiliser la gestion des inscriptions / utilisateurs / base de données de Discourse pour enregistrer les mêmes détails dans notre base de données de jeu externe (afin que le joueur puisse utiliser les mêmes identifiants pour se connecter au jeu).
Je parcours actuellement le dépôt git pour avoir une idée du fonctionnement, etc.
Le plan général, comme mentionné, est que lorsqu’un utilisateur s’inscrit sur le forum, Discourse enregistre les détails de l’utilisateur dans notre base de données de jeu (hébergée sur un autre VPS). S’ils mettent à jour leur mot de passe ou leur e-mail, cela se reflète également dans notre base de données SQL.
J’ai déjà un forum Discourse auto-hébergé en fonctionnement depuis quelques heures, donc j’apprends encore Discourse pour le moment.
Ma question est donc : y a-t-il un endroit où nous devrions commencer à travailler sur cela dans Discourse ?
Cela ressemble à SSO / DiscouseConnect qui a besoin que les e-mails soient validés par un tiers.
C’est un problème pour notre configuration particulière, car nous aimerions que Discourse gère la validation des e-mails et la gestion des comptes comme d’habitude, mais transmette simplement les informations de la base de données à notre base de données de jeu.
Donc, en substance, l’inverse de ce qu’est le SSO.
En bref : Discourse doit tout gérer, j’ai juste besoin d’obtenir certaines informations utilisateur de sa base de données.
Lorsque vous utilisez Discourse comme fournisseur d’identité, comme Richard l’a suggéré, Discourse gérera la validation des e-mails pour vous.
Lorsque l’utilisateur passe par le flux SSO sur Discourse, puis revient sur votre site Web, vous pouvez utiliser la réponse que Discourse ajoute sous forme de chaîne de requête intégrée au paramètre sso, contenant l’e-mail, le nom d’utilisateur, le nom, les groupes, etc. (mais pas le mot de passe, ce ne serait pas une bonne idée), que vous pouvez extraire et valider correctement à l’aide du sig fourni.
Donc, comme mentionné, ce n’est pas un site Web auquel Discourse enverra les informations.
C’est un serveur de jeu - alias juste un VPS avec MySQL en cours d’exécution.
L’ancien flux de travail était le suivant :
Unity peuple les tables SQL lorsque les utilisateurs « enregistrent un compte ».
Ce que je cherche à faire, c’est utiliser Discourse comme fournisseur d’enregistrement et de gestion de compte.
Autrement dit, ils s’enregistrent auprès de Discourse et utilisent ces informations pour se connecter au serveur de jeu (via le client Unity).
J’ai donc besoin d’un moyen de transférer de manière fiable les données utilisateur de Discourse vers la base de données MySQL.
(Ils sont tous deux sur la même machine).
Pour cela, nous avons configuré un wrapper de données étrangères pour Postgres → Mysql, puis des déclencheurs pour peupler de manière appropriée.
Ensuite, lorsque l’utilisateur saisira son e-mail et son mot de passe (Discourse) en jeu, il pourra se connecter - théoriquement.
L’autre problème que j’ai lu récemment concernait le hachage des mots de passe utilisé par Discourse (ce qui est une bonne chose pour de nombreuses raisons), mais cela signifie que les hachages sont uniques et ne peuvent donc pas être utilisés de cette façon.
Donc encore une fois, il n’y a pas de site Web pour le SSO, seulement Discourse et un autre VPS exécutant le serveur de jeu vidéo auquel les clients se connectent.