Пользователи переходят/подключаются к неправильному профилю в Discourse

Недавно у нас было 16 случаев, когда пользователи из WordPress связывались с неправильным пользователем в Discourse.

При просмотре профиля пользователя как администратор вы увидите, что запись SSO содержит данные неверного пользователя. Удалите запись, и в следующий раз, когда пользователь войдёт через WordPress, он получит доступ к правильному профилю пользователя в Discourse.

Сталкивался ли кто-нибудь с этим ранее?

Привет, Джейк,

Похоже, это связано с вашей предыдущей проблемой, в которой мы так и не смогли разобраться до конца:

Вероятно, дело в различии между адресом электронной почты в данных SSO и адресом в журнале входа.

Сама проблема может быть той же, на что указывал тот случай:

Я подозреваю, что проблема в том, что в полезной нагрузке SSO параметр require_activation установлен в true.

Откуда вы знаете, что данные неверны? Я не сомневаюсь в вас, просто пытаюсь понять, откуда может исходить проблема. Если вам удобнее не делиться этим публично, вы можете отправить мне детали в личные сообщения.

Привет, Энгус,

Спасибо, что снова подключился. Похоже, ситуация та же.

Откуда ты знаешь, что данные неверны?

Потому что email пользователя в профиле:

И email пользователя в записи SSO:

Не совпадали для пользователей, у которых произошла путаница. Идентификатор пользователя и его email принадлежали человеку, который входил в систему, но были связаны с неправильным профилем.

Извините за медленный ответ, Джейк.

Возможной причиной здесь является то, что в некоторых случаях один адрес электронной почты связан с несколькими учетными записями пользователей на вашем экземпляре WordPress. Как вы думаете, это возможно?

Например, у вас когда-либо был процесс регистрации пользователей в WordPress, отличный от стандартного (тот, который не требовал подтверждения адреса электронной почты перед входом в систему), или вы когда-либо импортировали пользователей в WordPress?

Это постоянная проблема или она ограничена подмножеством пользователей? Эти учетные записи пользователей старые или новые?

Не переживай, Ангус! Я не ожидаю, что ты обратишь на это внимание!

Учётные записи пользователей создаются при совершении покупки в WooCommerce. Ранее Woo работал на поддомене, но позже сайты были объединены. Оба сайта использовали одну и ту же таблицу пользователей, поэтому, по крайней мере теоретически, идентификаторы должны были остаться неизменными.

Доступ к сайту до моего прихода контролировался через MemberMouse. С тех пор — около 5 лет назад — доступ управлялся iMember360, а недавно был заменён на Memberium. Оба плагина по сути идентичны, интегрируются с CRM-системой Infusionsoft и позволяют предоставлять доступ к различным страницам на основе данных из этой CRM.

Работа этих плагинов требует уникального адреса электронной почты, поэтому один и тот же адрес не может быть использован для нескольких пользователей.

Это продолжающаяся проблема, но, похоже, она затрагивает очень небольшое количество пользователей. Она случилась у двух «старых» пользователей и недавно — у аккаунта, которому всего 5 дней, так что проблема не ограничивается только новыми пользователями.

Это непростой случай. У меня есть несколько теорий о том, как в вашей настройке может устанавливаться значение require_activation в true, что впоследствии вызывает эту проблему, но есть из чего выбрать (теорий).

В настоящее время я завершаю новый набор тестов для плагина WP Discourse и добавляю логирование в функциональность SSO. Я пишу дополнительное логирование, которое должно выявить причину этого. Эта работа будет включена в плагин в течение следующего месяца, поэтому у нас скоро будет более точный ответ.