游戏开发 - 用户注册和数据库管理(需要建议)

大家好,希望你们一切都好。

这只是一个关于方向的通用求助——我们希望使用 Discourse 的注册/用户管理/数据库将相同的详细信息注册到我们的外部游戏数据库中(这样玩家就可以使用相同的登录详细信息登录游戏)。

目前正在浏览 git 仓库以了解事物的工作原理等。

如前所述,总体计划是,当用户在论坛上注册时,Discourse 将在我们的游戏数据库(托管在另一个 vps 上)中注册用户详细信息。如果他们更新密码或电子邮件,这些也会反映在我们的 SQL 数据库中。

几个小时前已经成功运行了一个自托管的 Discourse 论坛,所以目前还在学习 Discourse。

那么我的问题是,在 Discourse 中是否有任何地方我们应该首先着手处理这个问题?

1 个赞

魔法词是“DiscourseConnect”和“identity provider” :wink:

4 个赞

好的,谢谢发过来!

3 个赞

这看起来像是 SSO / DiscouseConnect 需要第三方验证电子邮件。

这对我们的特定设置来说是个问题,因为我们希望 Discourse 像往常一样处理电子邮件验证和帐户管理,但只需将数据库信息传递给我们的游戏数据库。

所以本质上是 SSO 的反向操作。

简单来说:Discourse 需要处理所有事情,我只需要从它的数据库中获取一些用户信息。

当您使用 Discourse 作为身份提供者(正如 Richard 所建议的)时,Discourse 会为您处理电子邮件验证。

当用户在 Discourse 上完成 SSO 流程然后返回到您的网站时,您可以使用 Discourse 添加的响应,该响应作为嵌入式查询字符串附加到 sso 参数中,其中包含电子邮件、用户名、姓名、用户组等(但不是密码,那是好主意),您可以提取并使用提供的 sig 正确验证。

2 个赞

好的。

正如前面提到的,Discourse 不会将信息发送到网站。

它是一个游戏服务器——也就是一个运行 MySQL 的 VPS。

旧的工作流程是这样的:
Unity 在用户“注册账户”时填充 SQL 表。

我想做的是使用 Discourse 作为注册和账户管理提供商。

也就是说,他们通过 Discourse 注册,并使用这些信息通过 Unity 客户端登录游戏服务器。

因此,我需要一种可靠的方法将 Discourse 用户数据传输到 MySQL 数据库。
(它们都在同一台机器上)。

为此,我们为 Postgres 设置了一个外部数据包装器 → Mysql,然后设置触发器进行相应的填充。

然后,当用户在游戏中输入他们的(Discourse)电子邮件和密码时,他们应该能够登录——理论上是这样。

我最近读到的另一个问题是 Discourse 使用的密码哈希(这有很多原因,是件好事),但这意味着哈希是唯一的,所以不能那样做。

所以再说一遍,没有用于 SSO 的网站,只有 Discourse 和另一个运行视频游戏服务器的 VPS,客户端会连接到该服务器。