通过 SSO 发送标题,但没有“SSO 覆盖标题”设置?

我刚刚在 SSO 负载中添加了 Title 数据块,它能正确设置标题,但在后续登录时似乎无法再次更新。

我本应确认设置是否允许 SSO 覆盖标题,但我找不到“SSO 覆盖标题”的选项?这是否在将 Title 添加到 SSO 负载时被遗漏了?还是隐含在其他某个设置中?

我的社区非常需要此功能,因为我根据用户拥有的飞机来设置标题,而这一点会不时发生变化!

查看 Discourse 代码后发现,如果 SSO 载荷中包含 title 字段,那么用户每次通过 SSO 登录 Discourse 时,其标题都会被更新。需要注意的是,无法通过 SSO 载荷创建新标题,你只能提供用户已加入的现有 Discourse 分组的标题。

我已在自己的网站上测试过,功能运行正常。

这很有趣,因为我确实是通过将它们添加到有效负载中来创建标题的,而且它们并不是群组。例如:

image

如您所见,对于这组飞机所有者来说,这个标题非常有用,因此这是一个很好的功能!

根据我的测试,一旦设置了标题,SSO 有效负载就不会更改或重置该标题。用户也无法编辑标题……不过,我确实看到了它与群组之间的关联,因为他们可以选择一个希望作为其标题显示的群组。

这或许正在变成一个功能建议?或者是对“扩展此功能”的思考?这对我们的目的来说确实是一个很好的功能。

你说得对。让我感到困惑的是,当我发送一个标题,而该标题不对应用户所属群组的标题时,标题被设置为“无”:

但在负载中发送任何标题确实会在每次 SSO 登录时更新用户的 title。你可以通过 Rails 控制台检查这一点,或者如果网站上安装了 Data Explorer 插件,也可以使用它来查看。

这似乎是这种方法的缺点。用户在个人资料页面上只能选择他们所属的 Discourse 群组的标题。

这实际上对我们来说效果相当不错,因为我们的会员管理系统会记录这些详细信息,有时我们的会员需要提醒来更新他们的个人资料。:slight_smile:

我刚刚又测试了一次,现在它已经正常运行了。这总是让人又爱又恨……很高兴不需要修复它,但也很困惑为什么之前的测试显示有问题。所以一切正常,谢谢!

我弄明白为什么我的测试没有起作用了。你可以更改标题,但无法通过 SSO 将其设置为 null。如果你发送 null 作为标题,它不会清除标题。

我添加了一些 SSO 代码,将任何 null 标题转换为 “-”,这样就可以了。我还没试过空格,那可能也行。