SSO、WP Discourse 及用户名中的特殊字符

这个周末,我配置了 WP Discourse,以便将任何进行 WooCommerce 购买的用户自动创建为 Discourse 用户。一切运行正常,我对此感到非常自豪,甚至设置了 Zapier 自动将他们添加到一个群组中。但今天早上,一位名叫 François 的用户完成了购买,却未能被创建为 Discourse 用户。

我测试了 Chris Smith 是否仍能正常工作。可以。

我又测试了 Chrisç Smith 是否可行。不行。看来带波浪号的 c 导致了问题。

该用户已被添加为 WordPress 用户,其用户名使用的是不带波浪号的普通 c。但他们并未被添加到 Discourse。

这个问题能修复吗?还是我应该手动将他们添加到 Discourse?如果我手动添加,他们的登录信息是否会在 WordPress 和 Discourse 之间同步?

您是从 WordPress 还是 Zapier 发起将用户添加到 Discourse 的请求?

关于 SSO,配置是让用户通过 WordPress 登录 Discourse,还是通过 Discourse 登录 WordPress?

使用的是 Wp-Discourse SSO。Zapier 仅用于将他们添加到群组。

用户通过 WordPress 登录 Discourse。我想我这样表述是正确的。WordPress 是 SSO 提供方。

在 SSO 禁用的情况下,我可以创建用户名为 François 的 Discourse 账户,但无法用该用户名创建 WordPress 账户。WordPress 返回的错误信息是:“此用户名无效,因为它使用了非法字符。请输入有效的用户名。”

您的 WordPress 站点是否安装了插件以允许用户名中包含更多字符?

我没有使用任何特殊插件来允许额外的字符,但它确实为这个人创建了一个用户名,只是没有使用特殊字符。francois.xxx。某个地方将 ç 改成了 c。

我正在使用 WooCommerce,用户是在 WooCommerce 结账页面输入用户信息以创建登录账户的。我要求他们创建登录账户。

听起来 WooCommerce 会过滤掉用户名中不允许的字符。用户名包含 francois.xxx 的用户能否登录 Discourse?登录 Discourse 应该会自动为他们创建账号。

我不确定他们是否可以。我实在不想让新客户经历那样的测试,但我会用我的 chrisç 用户名试试看能做什么。我知道,当用户名中包含该字符时,他们不会被添加到 Discourse 的用户列表中。

感谢大家提供的帮助!

你可以尝试使用一个临时 Gmail 地址创建账户来测试此功能。

如果你在 WP Discourse SSO 提供者选项卡中启用了“登录时创建或同步 Discourse 用户”设置,那么当 WordPress 用户登录时,Discourse 账户应会自动为其创建。

如果你通过 Zapier 将用户添加到 Discourse 群组中,若该用户尚未存在于 Discourse 上,请求将会失败。避免此问题的最佳方法是通过 SSO 将用户添加到群组。不过,设置此功能在技术上有一定要求:使用 WP Discourse 管理 Discourse 群组成员资格

我正是这样做的,确实有效。

我正是这么想的。这倒不是什么大问题,我可以手动添加少数遇到问题的用户。

我一直尽量避免涉及技术细节,但可能会尝试您的建议。

我有没有告诉过您,我真的很喜欢 Discourse?感谢您所做的一切,也感谢您今天的帮助!