为 SSO 用户预创建用户账户

我很高兴在我的网站上使用 SSO 和 Discourse API。现在,我想进一步扩展它,让所有现有的群组在我的 Discourse 论坛中拥有私有子论坛(我刚刚写了一篇操作指南,因为涉及的大部分 API 文档不完善)。然而,这带来了一个问题:并非所有用户都登录过论坛,而登录完全通过 SSO 进行,因此某些群组成员可能还没有论坛用户名。为了仍然能够将他们分配到特定的论坛群组,我想预先创建他们的用户账户。我该怎么做呢?我的意思是,确实有创建 Discourse 用户的 API,但如何确保:如果我为 Mark 创建了一个账户,当 Mark 最终登录论坛时,SSO 会将他登录到我为他创建的账户,而不是创建一个新账户?谢谢!

5 个赞

SSO 用户通过 external_id 进行匹配,如果该字段不存在或不匹配,则通过电子邮件地址进行匹配。

因此,只要确保其中一项(最好是 external_id)匹配,您就不会有问题。

4 个赞

结果发现 POST /users 路径行不通,我需要使用 https://meta.discourse.org/t/sync-sso-user-data-with-the-sync-sso-route/84398,这要复杂得多,而且毫无必要。总之,现在已经完成了。

3 个赞