Существующий пользователь, который был аутентифицирован и ранее мог входить в систему, теперь получает следующее сообщение при попытке доступа к форуму:
Ошибка в логах Discourse, похоже, связана с другим пользователем (обратите внимание на атрибут name).
Что касается пользователя, который не может войти в систему, я подозреваю, что проблема в том, что в полезной нагрузке SSO установлено значение require_activation равное true. Это заставляет Discourse пытаться создать нового пользователя вместо поиска существующего. Поскольку его учётная запись уже существует, возникает ошибка.
Может быть несколько причин, по которым require_activation равно true для существующего пользователя, однако вы можете перейти к профилю пользователя в WordPress, установить этот флажок и нажать «Обновить профиль».
Затем попросите его попробовать войти в систему снова.
(Здесь я предполагаю, что у вас нет никакого пользовательского кода в WordPress, который использует фильтр discourse_email_verification).
P.S. Я рекомендую скрыть адреса электронной почты на скриншотах (защита данных и т. д.).
Во-первых, насчёт адреса электронной почты — Джонатан мой друг. Его адрес указан на его сайте, и ему абсолютно всё равно на конфиденциальность. Иначе я бы его скрыл.
Я проверил адрес, подтверждённый в его профиле, и он уже был подтверждён.
Я снял эту галочку:
И, похоже, это решило проблему.
Нет, никакого кастомного кода, использующего фильтр discourse_email_verification, нет.
Сегодня эта проблема возникла у другого пользователя, поэтому я всё ещё хочу разобраться в её причинах, так как мы хотели бы, чтобы пользователи не могли менять свой адрес электронной почты в Discourse.