当在 Discourse 中更改用户名时,WordPress 账户被完全删除(SSO 以 WordPress 为提供者)

继续讨论:使用 SSO 与 WordPress,但用户无法更改用户名

我使用的是 Discourse WordPress 插件,并将 WordPress 作为我的 SSO 提供商。

当用户在 WordPress 中创建账户时,我设置他们通过 WooCommerce 创建账户。我还启用了一项设置,要求用户必须通过电子邮件验证确认其 WordPress 账户后,才能登录。

当用户随后访问论坛时,他们需要点击“登录”按钮。如果用户已验证并登录,则他们将被认证到 Discourse,并自动为其创建论坛账户。

我一直允许用户在 Discourse 中更改用户名。

更改用户用户名会有什么后果?

然而,我注意到在 WordPress 中,用户的账户会被从我的 WooCommerce/WordPress 数据库中移除/删除,完全找不到踪迹。

随后,当用户尝试重新登录时,他们无法登录……当然,因为他们在 WordPress 上已没有账户。这是预期的行为吗?是否还有其他人有类似经历?!

我随后将“用户名更改期限”设置为“0”。

“注册后允许更改用户名的最大天数(设置为 0 则不允许更改用户名)。”

如果用户希望更改用户名,他们可以联系我们,我们可以在 WordPress 中为他们更改用户名,以确保与论坛中的用户名一致。这似乎有效。(使用了 @AdamCapriola 在此处 [SSO with Wordpress but users cannot change their username - #7 by AdamCapriola] 推荐的“用户名更改器”插件。)

当 WordPress 作为 Discourse 的单点登录(SSO)提供商时,WP Discourse 插件对 WordPress 用户所做的唯一更改,是向用户添加 discourse_sso_user_iddiscourse_username 这两个 元数据 字段。据我所知,该插件不会执行任何操作,导致用户在 Discourse 上更改用户名后从 WordPress 数据库中被删除。

据我所知,用户在 Discourse 上更改用户名所带来的唯一后果是,存储在 WordPress 上的用户 Discourse 用户名可能与用户实际的 Discourse 用户名不同步。如果发生这种情况,将会影响用户向 Discourse 发布帖子的能力。但这不应影响 SSO 登录,更绝不会导致用户从 WordPress 数据库中被删除。

这是一个 WordPress 问题,而非 Discourse 问题,但我不建议使用插件来覆盖 WordPress 的基本功能。在 WordPress 中,用户名本就不应被编辑。最好遵循这一默认行为。

4 个赞