这是最近一次更改的结果。此前,如果 SSO 负载中未提供用户名,系统会根据用户的电子邮件地址创建用户名。这样做存在的风险是可能会暴露用户的电子邮件地址。如果 SSO 负载中未提供用户名,Discourse 现在会将用户名设置为"user"并附加一个数字,以确保用户名唯一。
解决方案是在 SSO 负载中提供用户名。如果您确实希望根据用户的电子邮件地址创建用户名,则应在"@"字符处拆分电子邮件地址,并将地址中的名称部分作为用户名发送。
我认为您正在使用 DiscourseConnect 进行 SSO。这允许您在 SSO 负载中设置许多参数。请查看此文件顶部的 ACCESSORS 和 BOOLS 列表,以了解可以通过 DiscourseConnect 负载设置的参数:https://github.com/discourse/discourse/blob/main/lib/single_sign_on.rb。您将看到可以通过这种方式设置 bio(个人简介)和 title(头衔)。