你好 Hunter,
我们目前处于测试阶段,Discourse 集成进展顺利。我们使用 SSO 集成来强制用户在我们的网站上登录。这一直运行良好,但我注意到以下两点:
-
Discourse 不接受包含“@”符号的用户名……它会将用户名截断为“@”之前的第一部分。如果后续在调用 Discourse API 时使用该用户名作为参数,可能会引发问题。Discourse 无法识别类似 someone@example.com 的用户名,因为在 Discourse 中,该用户的用户名被存储为"someone"。解决此问题的简单方法是在你自己的用户名中禁止使用“@”符号!
-
当有人在你的网站上注册时,你必须显式调用 Discourse API 来同步 SSO 用户。因为你可能希望在该用户首次访问 Discourse 网站(这将自动同步 SSO)之前,对其执行某些操作(例如将其添加到 Discourse 群组)。我使用的是基于 Django 的网站,因此我使用了 pydiscourse 库,其中有一个 sync_sso 方法,可以非常方便地完成此操作(Client Challenge
是的,我们将使部分课程过期。在这种情况下,服务器会调用 Discourse API,将该用户从该课程的通用群组以及该课程中与其班级(cohort)对应的专属群组中移除。
我已在 Django 网站中创建了表,用于跟踪这些“课程”群组以及每个课程内的各个“班级”群组。因此,在添加或移除学生等操作时,我会利用这些信息:
