Ошибка SSO в DiscourseConnect

Привет, команда экспертов!

У меня проблема с SSO.

Существующий пользователь, который был аутентифицирован и ранее мог входить в систему, теперь получает следующее сообщение при попытке доступа к форуму:

Вот его данные SSO:

Я могу войти от имени этого пользователя, но не могу войти через WordPress.

В логах ошибок зафиксировано следующее сообщение:

Я не понимаю, в чём причина. Передаю эстафету вам, замечательным умным людям!

Привет, @jakelunniss,

Ошибка в логах Discourse, похоже, связана с другим пользователем (обратите внимание на атрибут name).

Что касается пользователя, который не может войти в систему, я подозреваю, что проблема в том, что в полезной нагрузке SSO установлено значение require_activation равное true. Это заставляет Discourse пытаться создать нового пользователя вместо поиска существующего. Поскольку его учётная запись уже существует, возникает ошибка.

Может быть несколько причин, по которым require_activation равно true для существующего пользователя, однако вы можете перейти к профилю пользователя в WordPress, установить этот флажок и нажать «Обновить профиль».

Screen Shot 2021-08-06 at 10.27.53 AM

Затем попросите его попробовать войти в систему снова.

(Здесь я предполагаю, что у вас нет никакого пользовательского кода в WordPress, который использует фильтр discourse_email_verification).

P.S. Я рекомендую скрыть адреса электронной почты на скриншотах (защита данных и т. д.).

Привет, @angus

Спасибо за ответ!

Во-первых, насчёт адреса электронной почты — Джонатан мой друг. Его адрес указан на его сайте, и ему абсолютно всё равно на конфиденциальность. Иначе я бы его скрыл.

Я проверил адрес, подтверждённый в его профиле, и он уже был подтверждён.

Я снял эту галочку:

image

И, похоже, это решило проблему.

Нет, никакого кастомного кода, использующего фильтр discourse_email_verification, нет.

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

Ещё раз спасибо!

Он недавно сменил свой адрес электронной почты, или скриншот лога с ошибкой относится к другому пользователю?