Как использовать Discourse Connect (SSO) для обновления аватара, имени пользователя и имени?

Мне удалось настроить SSO для Discourse по адресу https://forum.mycoralapp.com

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

Но вопрос в том, как обновить данные, когда они меняются на нашей стороне (в приложении)? Я выхожу из системы и снова вхожу через SSO, передавая другое имя, имя пользователя и фото, но старые данные остаются. Я также установил соответствующие галочки в админ-панели, что, казалось бы, должно переопределить хотя бы аватар, но ничего не происходит:

Можно ли всегда менять имя и имя пользователя? Почему об этом не упоминается вместе с «аватаром»? На практике же НИЧЕГО не меняется.

Можете поделиться кодом Discourse Connect, который использует ваше приложение? Похоже, что информация передаётся некорректно.

Что-то вроде этого: Here is some PHP code and you'd do similar for iOS and Android. Remember to intercept the URL request in WebView! · GitHub

Этого достаточно для создания учётной записи с правильной информацией. Однако при последующих входах она не перезаписывается.

Согласно этой статье, мне нужно зайти в приложение на Rails и настроить такие параметры, как SiteSetting.discourse_connect_overrides_avatar. Не знаю, связано ли это с тем, что инструкции устарели, но в панели администратора даже нет таких опций, как «переопределить имя» и «переопределить имя пользователя».

@EGreg, вы уже нашли решение этой проблемы?
У меня возникла та же проблема с самостоятельно размещённым Discourse.
Вход через SSO, похоже, не перезаписывает имя пользователя для существующих учётных записей, созданных до внедрения SSO, даже если включена настройка «Перезаписывать имя пользователя».

@pfaffman помог мне, и, кажется, всё сработало. Нужно перепроверить. Джей?

Извините. Я не уверен насчёт того, как подключаются существующие аккаунты и переименовываются ли они, иначе я бы ответил в той теме.

Изучив первый пост в этой теме, я вижу, что на скриншоте настройка auth overrides username не отображается как включённая. Для того чтобы DiscourseConnect мог заменять имя пользователя, необходимо включить эту настройку. Было бы здорово, если бы на странице настроек стало более очевидно, что эти три параметра относятся к DiscourseConnect:

  • auth overrides email
  • auth overrides username
  • auth overrides name

Также убедитесь, что пользователи выходят из системы Discourse, а затем входят снова через DiscourseConnect. Если они не выйдут из Discourse, изменения не вступят в силу. Вы можете обойти эту проблему, выполнив API-запрос к маршруту sync_sso от имени пользователя: Sync DiscourseConnect user data with the sync_sso route.

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