我希望只有在我外部网站上注册过的人才能在我的 Discourse 论坛创建账户。我认为无法使用 SSO API,因为我的网站本身不包含认证功能,只是将注册信息存储在 SQL 数据库中。
我能否在注册环节设置一个条件,仅允许在我网站(SQL 数据库)中已注册的用户进行注册?
我希望只有在我外部网站上注册过的人才能在我的 Discourse 论坛创建账户。我认为无法使用 SSO API,因为我的网站本身不包含认证功能,只是将注册信息存储在 SQL 数据库中。
我能否在注册环节设置一个条件,仅允许在我网站(SQL 数据库)中已注册的用户进行注册?
我不是 Discourse 专家,但处理这个问题有很多方法,以下是我认为可能有效并值得尝试的一种方案:
总之,Discourse 提供了完善的 Webhook 和 API,你可以用任何你熟悉的语言在远程编写自定义脚本来利用这些功能。
如果你愿意用 Ruby 编写 Discourse 插件,那也可以实现,但就我个人而言,我不太擅长 Ruby,所以会觉得上述方法更简单。
实现这一目标的一种方法是启用“仅限邀请”和“必须审核用户”这两个站点设置。启用这些设置后,只有被邀请的用户才允许在你的网站上创建账户。由于“必须审核用户”设置会阻止非工作人员用户发送邀请,因此只有工作人员用户才能发送邀请。
随后,你可以从 SQL 数据库中导出电子邮件地址,并将这些地址添加到一个 CSV 文件中。你可以按照此处概述的步骤,使用该文件批量邀请用户:发送批量用户邀请。
感谢 Jonathan 的提议,我找不到用于批准或拒绝注册申请的 API。
谢谢西蒙,问题是数据库范围广泛且可更新,
在 GitHub 上搜索 Discourse 代码库时,我发现了一个 “approve_user” 操作,例如 put "/review/#{reviewable.id}/perform/approve_user.json"。看来您可能需要先获取 reviewables,以便获得所需的 reviewable ID。