Discourse の OAuth2 を使った SSO

GitHub OAuth を使用して SSO を設定したいと考えています。ユーザーが GitHub 経由でサイトにログインすると、Discourse にも自動的にログインされるようにしたいです。Discourse のコメントはサイトに埋め込まれています。

このように設定するにはどうすればよいでしょうか?

ご自身のサイトへの OAuth2 接続には、このプラグインを使用できます。

「GitHub でログイン」機能は Discourse に標準搭載されています。設定手順はこちらで確認できます:

まだ混乱しています。

明確でなかった場合のために申し上げますと、私は以下を持っています:

GitHub OAuth を備えたウェブサイト。
GitHub OAuth を備えた Discourse。

どちらも他のログイン方法を持っていません。
ユーザーが私のウェブサイトにログインすると、Discourse にも自動的にログインされる必要があります。

私が欠けているのは、それらの間のリンクです。私のウェブサイトで GitHub OAuth 経由で認証されたときに、どのようにして彼らを Discourse にログインさせるのでしょうか?

ユーザーがあなたのウェブサイトにログインすると、会話が発生するのは GitHub とあなたのウェブサイトの間だけです。

つまり、
あなたのウェブサイトは GitHub に呼び出し、ユーザーデータベースにそのユーザーが存在するかどうかを問い合わせます。
GitHub は「はい(またはいいえ)」と応答し、あなたのサイトが要求したユーザーデータまたは認証トークンを返します。
これで、ユーザーはあなたのサイトにログインしたことになります。

この仕組みにおいて、Discourse に関するやり取りは存在しません。ここで必要なのは、指定されたユーザーがログインしたことを Discourse に伝え、Discourse にも同時にログインさせる方法です。

必要なのは、あなたのウェブサイトのログイン処理と並行して Discourse のログイン処理をキューイングし、ユーザーのログイン/ログアウトを Discourse に認識させる仕組みです。

Auth0 はこれを最初から非常にうまく処理します。
もう一つの方法は、Discourse を SSO サーバーとして使用することです。

返信ありがとうございます!

私が使っている認証プラグインは実際には OAuth を経由して JWT を発行していることに気づきました。discourse-jwt の仕組みなら、私にも使えると思います。