功能:使用 Google OAuth2/SSO 时,从电子邮件的用户部分创建默认用户名

希望在这里发布随机的功能请求或建议没有问题。

我部署了一个 Discourse 实例,允许用户使用 Google Apps 托管域名(在我的案例中是 @vt.edu)进行身份验证。我注意到 Discourse 会通过 OAuth2 获取用户的首名和姓氏,并将它们组合起来作为用户名,例如 First_Last

我更希望用户名能与邮箱地址 user@vt.edu 中的用户部分(即 user)相匹配,因为 user 是其他系统中使用的标识符,而 First_Last 则不是。此外,First_Last 并不能保证唯一性(例如 John_Smith),但用户 ID 是唯一的。在我的使用场景中,这将有助于数据探索插件(Data Explorer plugin)将统计数据与其他记录进行匹配,并提供更加统一的整体体验。

1 个赞

我认为 @andrei 完全删除了它,因为在“自动”根据电子邮件创建用户名时存在隐私问题?

1 个赞

不完全是。我们不是移除这个功能,而是禁用它,但可以通过 use_email_for_username_and_name_suggestions 站点设置重新启用它。

另外请注意,此更改是针对 DiscourseConnect 进行的,而不是针对其他身份验证方法(包括通过 Google 进行身份验证)。但针对其他方法的修复即将推出。

此外,在生成用户名时,全名优先于电子邮件,只有当载荷中的 usernamefull-name 字段为空时,身份验证器才会尝试使用电子邮件进行用户名建议。这是可以通过插件自定义的。但我们不希望默认使用电子邮件作为用户名建议的主要来源,尤其是对于通过 Google 进行身份验证的情况。原因是,在这种情况下,只需在用户名后添加 @gmail.com 就可以找出论坛上所有用户的电子邮件。

1 个赞