localhostでDiscourse Connectをテストできません

皆様、こんにちは。

Discourse のバッジを当プラットフォームと連携させたいと考えております。具体的には、ユーザーが Discourse アカウントを当プラットフォームのアカウントと連携できるようにしたいのです。

アカウントを連携させるため、Discourse Connect を利用しようと考えましたが、リダイレクト時に CORS エラーが発生してしまいました。

Access to fetch at 'https://forum.freecodecamp.org/session/sso_provider?sso=<hash>'
(redirected from 'http://localhost:3000/discourse/connect') from origin
'http://localhost:8000' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.

Discourse Connect の設定を多数試しましたが、サーバー、クライアント、Discourse のアドレスを discourse connect provider secrets に追加しても効果はありませんでした。

補足: 当方は Discourse Connect をログイン手段として利用するつもりはありません。

関連する場所

  • freecodecamp.org - プラットフォームのドメイン
  • forum.freecodecamp.org - Discourse インスタンスのサブドメイン
  • localhost:3000 および localhost:8000 - freecodecamp.org の開発環境におけるサーバーとクライアント

関連コード:

return res.redirect(
    `${FORUM_LOCATION}/session/sso_provider?sso=${URL_ENCODED_PAYLOAD}&sig=${HEX_SIGNATURE}`
  );

ご協力をいただければ幸いです。

このリダイレクトフローは、fetch 呼び出しではなく、コンテンツフレーム向けに意図されたものだと考えられます。例えば、ログインページにリダイレクトして戻ってこないようなケースは機能せず、この方法ではクロスオリジンのクッキーにも問題が生じます。

昔ながらのポップアップウィンドウを使ってみてはいかがでしょうか?:stuck_out_tongue: