APIキーを使用したユーザーの初回ログイン

皆さん、こんにちは。

Discourse をバックエンド専用で使用しており、Discourse UI は関与していません。API を使用するために、ユーザー名とグローバル API キーを使用してリクエストを送信しています。

1 つの問題に直面しています。それは、新しいユーザーが OIDC プロバイダー (Keycloak) で作成されるたびに、API でそのユーザー名を使用できないことです。Discourse はユーザーを認識しません。

これをデバッグしようとしたところ、ユーザーが OIDC から初めて正常にログインしたときに Discourse もユーザーを作成し、UI にアカウントが正常に作成されたというバナーが表示されることに気づきました。その後のみ、ユーザー名を使用して API をヒットできます。

UI を必要とせずに、このフローを自動化したいと考えています。基本的に、OIDC プラットフォームでユーザーが作成された場合、UI を使用せずに、そのユーザー名とグローバル API キーを使用してリクエストを送信できる必要があります。追加の API を呼び出すことも検討しています。

何か手がかりがあれば幸いです。
よろしくお願いします!!

ご推察の通り、API を使用してユーザーを作成する必要があります。Sync DiscourseConnect user data with the sync_sso route が役立つかもしれません。そうでない場合は、Search results for 'create user api' - Discourse meta を参照するか、昔ながらの Discourse API のリバース エンジニアリング を試してみてください。

「いいね!」 3

DiscourseConnectは私のケースでは機能しません。なぜなら、一度にOIDCまたはDiscourse Connectのいずれかしか使用できないからです。Discourse APIのリバースエンジニアリングを試みました。
URLは次のとおりです:- https://smallidea.co/u

以下のペイロードがあります:-
{
name: testuser
email: test@xxxxxx.com
username:discoursetestuser3
password_confirmation:2290e67e2f59d6b9a0edbc735cef0e1d
challenge:598d41761746371257a4c89d5ac61260
timezone:Asia/Calcutta
}

「password_confirmation」と「challenge」のパラメータが理解できません。これらは何でしょうか?
これらのパラメータは両方とも動的であり、固定値を渡すことはできません。ランダムです。