Setup DiscourseConnect - Discourseの公式シングルサインオン (sso)

それは、DiscourseをWordPressのSSOプロバイダーとして使用しているということのようですね。そのアプローチについては、こちらに概要が記載されています。DiscourseをIDプロバイダー(SSO、DiscourseConnect)として使用する。Discourse WordPressプラグインには、WordPressをDiscourseのSSOプロバイダーとして使用するか、DiscourseをWordPressのIDプロバイダーとして使用するかを選択するオプションがあります。両方のアプローチで同じ名前を使用すると、混乱が生じます。

この場合、WordPressをIDプロバイダーとして使用することをお勧めします。このアプローチでは、ユーザーはWordPressサイトでアカウントを作成し、WordPressの認証情報でDiscourseにログインします。このアプローチで注意すべき点は、ユーザーがDiscourseにログインできるのはWordPress経由のみであり、WordPressアカウントなしでDiscourseアカウントを作成することはできないということです。DiscourseをWordPress会員サイトと統合する場合、これは適切な設定だと思います。

WordPressをDiscourseのIDプロバイダーとして使用する場合、WordPressでのアクティビティに基づいてユーザーのDiscourseグループメンバーシップを設定するのに役立つユーティリティ関数がいくつかあります。これらの関数については、こちらに概要が記載されています。WP Discourse SSOでDiscourseのグループメンバーシップを管理する

元の質問に戻ります。

WordPressプラグインのDiscourseConnectクライアントコードを確認してからしばらく経ちますが、あなたが求めていることは、そのコードが期待どおりに動作する、おおよそそのようになっていると思います。ユーザーがDiscourseアカウントを持っている場合、WordPressの「Discourseでログイン」リンクをクリックするだけでアカウントが作成されます。

これは、WordPressをDiscourseConnectクライアントとして使用する場合、技術的には可能ですが、何か変更されていない限り、ドキュメントで説明されている add_user_to_discourse_group および remove_user_from_discourse_group メソッドを使用することはできません。Discourseグループにユーザーが追加されたときにトリガーされるDiscourse Webhookを設定し、WordPressにそのWebhookを処理するコードを追加する必要があります。WordPressからDiscourseにグループを同期するには、WordPressで変更があったときにユーザーのグループを更新するためにDiscourseにAPI呼び出しを行う必要があります。したがって、WordPressをDiscourseConnectプロバイダーとして使用する場合に比較的簡単に達成できることは、WordPressをDiscourseConnectクライアントとして使用する場合にはやや複雑になる可能性があります。

「いいね!」 1