最近,我们发现有16起来自 WordPress 的用户被错误地关联到 Discourse 中其他用户的案例。
以管理员身份访问用户资料时,可以看到 SSO 记录中显示的是错误用户的详细信息。删除该记录后,当用户下次通过 WordPress 登录时,即可正确访问其在 Discourse 中的用户资料。
有人之前遇到过类似情况吗?
最近,我们发现有16起来自 WordPress 的用户被错误地关联到 Discourse 中其他用户的案例。
以管理员身份访问用户资料时,可以看到 SSO 记录中显示的是错误用户的详细信息。删除该记录后,当用户下次通过 WordPress 登录时,即可正确访问其在 Discourse 中的用户资料。
有人之前遇到过类似情况吗?
嘿 Jake,
这似乎与你之前未彻底解决的问题有关:
问题可能出在 SSO 详情中的电子邮件与登录记录中的电子邮件不一致。
该问题本身可能正是之前案例所暗示的:
我怀疑问题在于 SSO 负载中
require_activation被设置为true。
你是如何得知这些详细信息有误的?我并非怀疑你,只是想确认问题可能出在哪里。如果你更倾向于不公开分享,可以私信我详细信息。
嘿,Angus,
再次感谢你介入。看起来情况还是一样。
你怎么知道详情有误?
因为用户资料中的用户邮箱:
与 SSO 记录中的用户邮箱:
对于发生交叉的用户并不一致。用户 ID 和邮箱属于正在登录的人,但却关联到了错误的资料。
抱歉回复晚了,Jake。
这里的一个可能原因是,在某些情况下,单个电子邮件地址与您的 WordPress 实例中的多个用户账户相关联。您认为这可能吗?
例如,您是否曾在 WordPress 中使用过自定义的用户注册流程(即用户无需确认电子邮件即可登录),或者在任何时候导入过用户到 WordPress?
这是一个持续存在的问题,还是仅限于部分用户?这些用户账户是旧的还是新的?
别担心,Angus!我对你是否关注此事没有任何期待!
用户账户是通过在 WooCommerce 上完成购买创建的。WooCommerce 曾经位于一个子站点上,但后来这些站点已合并。两个站点共享一个用户表,因此从理论上讲,用户 ID 应保持不变。
在我接手之前,网站访问权限由 MemberMouse 控制。此后——大约 5 年前——访问权限改由 iMember360 控制,最近又替换为 Memberium。这两个插件本质上完全相同,均与名为 Infusionsoft 的 CRM 系统集成,并允许根据 CRM 中的数据访问不同页面。
这些插件的工作方式要求每个用户必须使用唯一的电子邮件地址,因此同一电子邮件地址无法用于多个用户账户。
这是一个持续存在的问题,但似乎仅限于极少数用户。已有两名“老”用户遇到此问题,最近一个仅创建 5 天的新账户也出现了同样情况,因此这并非仅影响新用户的问题。
这是一个棘手的问题。关于 require_activation 在你的设置中如何被设为 true 并进而导致此问题,我有几个理论可供选择。
我目前正在为 WP Discourse 插件完成一套新的测试套件,并正在为 SSO 功能添加日志记录。我正在编写一些额外的日志记录,这些记录应该能够捕捉到问题的原因。这项工作将在下个月整合到插件中,因此我们很快就能得到更明确的答案。