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: