OAuth を使用したログインフロー (Flask → Discourse → Flask)

こんにちは!

関連する質問が2つあります。どなたかお手伝いいただけると幸いです :slight_smile:

Discourse インスタンスを Twitter、Facebook、Google 経由の OAuth をサポートするように設定しました。目指しているのは以下の通りです。

シナリオ 1:

  1. ユーザーが /home(Python/Flask アプリ)にアクセス
  2. Discourse アカウントの登録を希望
  3. 適切な OAuth フロー(例:https://discourse.example.com/auth/google)にリダイレクト
  4. 登録完了後、/home に戻すことは可能でしょうか?

シナリオ 2:

  1. ユーザーが /home(Python/Flask アプリ)にアクセス
  2. ユーザーはすでに Discourse アカウントを保有
  3. 保護されたページにアクセスするため、メインアプリで OAuth を使用してログインを希望
  4. 適切な OAuth フローにリダイレクト
  5. Discourse でアカウント認証が完了したら、/user にリダイレクトすることは可能でしょうか?

不明な点がございましたら、お気軽にお知らせください。詳しく説明いたします!

ありがとうございます!

まだご覧になっていないかもしれませんが、当社のドキュメントはこちらです:https://meta.discourse.org/t/oauth2-basic-support/33879/。お探しの答えがいくつか載っているでしょうか?

@rishabh さん、返信ありがとうございます!

残念ながら、私の質問についてはドキュメントに記載されていないようです。私の OAuth 設定自体は期待通りに機能していますが、シナリオ 1 と 2 で説明されている追加機能だけが問題を引き起こしています。

私が求めているのは、OAuth プロバイダーがアカウントを検証し、Discourse に戻した後、ユーザーをターゲット URL にリダイレクトする、callback_url というオプションパラメータのようなものです。

つまり、私の Flask/Python アプリに対して、Discourse インスタンス自体が OAuth プロバイダーとして機能するようなイメージでしょうか?

例えば、https://discourse.example.com/auth/google?callback_url=https://example.com/home という URL で、ユーザーを Google に送り、Discourse に戻した後、Discourse が callback_url にリダイレクトするといった具合です。