Первый вход пользователя с использованием API KEY

Всем привет,

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

У меня возникла одна проблема: когда в моем OIDC-провайдере (Keycloak) создается новый пользователь, я не могу использовать его имя пользователя в API. Discourse не распознает этого пользователя.

Я попытался разобраться и обнаружил, что Discourse также создает пользователя, когда тот впервые успешно входит через OIDC, и показывает в интерфейсе баннер «Учетная запись успешно создана». Только после этого я могу использовать имя пользователя для отправки запросов.

Я хочу автоматизировать этот процесс без необходимости использования интерфейса. По сути, я имею в виду: если пользователь создан на моей OIDC-платформе, то без использования интерфейса я должен иметь возможность использовать его имя пользователя и глобальный API-ключ для отправки запросов. Я готов использовать дополнительные API, если это необходимо.

Любые подсказки будут очень полезны.
Заранее спасибо!!

Как вы, вероятно, догадываетесь, вам потребуется создать пользователя через API. Возможно, вам поможет статья Sync DiscourseConnect user data with the sync_sso route. Если нет, посмотрите Search results for 'create user api' - Discourse Meta или, возможно, проверенный временем реверс-инжиниринг API Discourse.

DiscourseConnect в моём случае не сработает, так как в любой момент времени можно использовать либо OIDC, либо Discourse Connect. Я попытался провести реверс-инжиниринг API Discourse.

URL: https://smallidea.co/u

Вот содержимое запроса:
{
name: testuser
email: test@xxxxxx.com
username:discoursetestuser3
password_confirmation:2290e67e2f59d6b9a0edbc735cef0e1d
challenge:598d41761746371257a4c89d5ac61260
timezone:Asia/Calcutta
}

Я не понимаю параметры «password_confirmation» и «challenge». Есть ли у кого-нибудь идеи, что это такое?
Оба эти параметра динамические, и я не могу передать фиксированное значение. Они случайные.