Вопросы о username при SSO между Discourse и Drupal

Всем привет,

Похоже, что наш экземпляр Discourse теперь переносит имена пользователей всех в виде какого-то варианта “user####”, тогда как раньше он переносил их в виде варианта их адреса электронной почты (например, если имя пользователя было “tonysmith1@aol.com”, он создавал имя пользователя “tonysmith1”). Есть ли способ изменить это?

Также, можно ли перенести информацию профиля пользователя из Drupal, чтобы заполнить профиль пользователя в Discourse? Например, должность, название компании и т.д.

Это результат недавнего изменения. Ранее, если в полезной нагрузке SSO не указывалось имя пользователя, оно создавалось на основе адреса электронной почты пользователя. Риск такого подхода заключается в том, что это потенциально раскрывает адреса электронной почты пользователей. Если в полезной нагрузке SSO не передается имя пользователя, Discourse теперь устанавливает имя пользователя как «user» с добавлением числа, чтобы имена были уникальными.

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

Полагаю, вы используете DiscourseConnect для SSO. Это позволяет устанавливать множество параметров в полезной нагрузке SSO. Посмотрите списки ACCESSORS и BOOLS в начале этого файла, чтобы узнать, какие параметры можно установить через полезную нагрузку DiscourseConnect: https://github.com/discourse/discourse/blob/main/lib/single_sign_on.rb. Вы увидите, что и bio, и title можно установить таким образом.