Как перехватить первое использование SSO, чтобы пользователь мог подтвердить действие и задать имя пользователя?

Здравствуйте,

Я использую Discourse уже около трёх недель, и пока мне очень нравятся его возможности, простота, API, документация и сообщество Meta. Это действительно отличный опыт.

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

Мы используем DiscourseConnect, который хорошо документирован здесь. Также мы используем маршрут sync_sso для мгновенной синхронизации любых изменений, которые мы вносим на нашей стороне, с Discourse. Пока всё работает отлично.

Теперь у Product Owner есть два требования, и прежде чем я решу реализовать их самостоятельно, я хочу уточнить, можно ли их настроить непосредственно в Discourse:

  1. В нашей внутренней базе данных у пользователей нет имени пользователя. Однако у них есть, среди прочего, реальное имя. В нашем текущем PoC мы передаём это реальное имя вместе с ssoRecord, чтобы Discourse сохранил его и сгенерировал имя пользователя. Однако, возможно, мы не имеем на это законных оснований, и нам, возможно, придётся позволить пользователям самим решать, хотят ли они хранить своё реальное имя в нашем экземпляре Discourse и какое имя пользователя они хотели бы использовать в нашем экземпляре Discourse.
    Вопрос: Можно ли определить, когда пользователь впервые использует SSO, и в этом случае перенаправить его на какую-то «Страницу приветствия», где он сможет выбрать имя и имя пользователя? В идеале эти поля должны быть предварительно заполнены значениями из ssoRecord, но пользователь должен активно подтвердить их перед продолжением действия входа через SSO, замаскированного под регистрацию.

  2. Говоря о подтверждении: снова, когда пользователь впервые использует SSO, есть ли способ убедиться, что пользователь прочитал и согласился с нашими условиями использования, прежде чем его данные будут фактически сохранены в базе данных Discourse?

Теоретически я мог бы реализовать оба шага на нашей стороне в нашем веб-приложении. Но снова, прежде чем я это сделаю, я хотел бы проконсультироваться и узнать, предоставляет ли Discourse что-то из коробки. Я не нашёл ничего существенного в настройках панели администратора, поэтому и спрашиваю здесь :slight_smile:

Спасибо!

Редактирование:
Я нашёл похожую тему, где предлагается использовать опцию auth skip create confirm, однако эта опция по умолчанию уже снята с галочки.

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