大家好,
看起来我们的 Discourse 实例现在将所有用户的用户名都转换为类似"user####“的变体,而之前则是基于他们的电子邮件地址进行转换(例如,如果用户名为"tonysmith1@aol.com”,系统会将其转换为"tonysmith1")。请问是否有办法更改此设置?
另外,是否可以将 Drupal 中的用户配置文件信息(如头衔、公司名称等)迁移到 Discourse 中,以填充用户的个人资料?
大家好,
看起来我们的 Discourse 实例现在将所有用户的用户名都转换为类似"user####“的变体,而之前则是基于他们的电子邮件地址进行转换(例如,如果用户名为"tonysmith1@aol.com”,系统会将其转换为"tonysmith1")。请问是否有办法更改此设置?
另外,是否可以将 Drupal 中的用户配置文件信息(如头衔、公司名称等)迁移到 Discourse 中,以填充用户的个人资料?
这是最近一次更改的结果。此前,如果 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(头衔)。