잘 찾아냈네요 
하신 일을 깎아내리려는 건 아니지만, 제 첫인상은 이 시점에서 외부 인증 서비스(예: okta.com 또는 auth0.com) 사용을 고려해야 한다는 것입니다. 서로 다른 세 가지 서비스(예: Patreon, Wordpress, Discourse)를 연결하여 한 번에 단일 인증을 달성해야 하는 단계에 도달했다면, 전용 인증 솔루션을 고려해야 한다는 신호입니다. 어떻게든 구현할 수 있을지 모르겠지만, 장기적으로 솔루션이 깨지거나 모든 경우에 작동하지 않을 상당한 리스크가 있습니다.
그래도 이 방향으로 진행하시길 원하신다면 몇 가지 제안이 있지만, 다소 기술적으로 깊어질 수 있다는 점에 유의해 주세요. 다른 분들도 이 문제를 마주하고 더 깊이 파고들고 싶어 할 경우를 대비해 여기에 추가합니다.
Patreon Wordpress 플러그인 코드를 간단히 살펴봤는데, 그들의 OAuth 플로우가 state 파라미터 내에 final_redirect_uri 키/값을 허용하는 것 같습니다. 이를 통해 Patreon 인증에서 Discourse SSO로 바로 이동할 수 있으며, 위에서 언급한 Members 및 Redirect 플러그인의 필요성을 제거하고 해당 접근 방식에서 발생할 수 있는 문제를 회피할 수 있습니다.
많은 인증 서비스가 final_redirect_uri 파라미터의 변형(즉, 인증 후 사용자가 어디로 보내질지를 변경할 수 있는 파라미터)를 제공합니다. 동일한 문제를 해결하려고 하지만 다른 서비스(즉, Patreon이 아닌 경우)를 사용하고 있으며, 세 가지 다른 서비스를 연결하는 것에 대한 제 경고가 해당되지 않는다고 판단하셨다면, 그곳을 살펴봐야 합니다.
즉, Patreon 로그인 버튼을 생성하는 단축코드가 final_redirect_uri를 인수로 받아서 Patreon이 최종적으로 사용하는 로그인 URL에 전달되도록 해야 합니다. Patreon Wordpress 플러그인 코드를 보면 실현 가능한 제안입니다. 참고로, Patreon URL을 생성하는 관련 함수는 다음과 같습니다:
Patreon_Frontend::patreonMakeLoginLink(false, array( 'final_redirect_uri' => # ) );
기본적으로 코드는 이미 커스텀 final_redirect_uri 처리를 위해 부분적으로 설정되어 있습니다. Patreon Wordpress 플러그인 개발자가 이를 추가하고 싶지 않을 수 있다는 점은 이해할 수 있지만, 여기서 설명한 내용을 설명할 수 있을 만큼 자신감이 있다면 그들의 GitHub 저장소에 이슈를 생성하는 것이 가치가 있을 수 있습니다. 그렇지 않다면, 위에서 언급한 함수를 사용하여 링크를 직접 생성하고 자체 버튼을 만들 수 있습니다(또는 Wordpress 개발자를 고용하여 처리할 수 있습니다).
SSO URL 구성에 대해 작은 참고 사항 하나만 드리자면, 아래처럼 사용하는 것이 더 명확합니다.
https://discourse.example.com/session/sso?return_path=/
대신
https://discourse.example.com/session/sso?return_path=%2F
마지막 부분인 return_path는 로그인 후 Discourse에서 사용자를 보내는 경로입니다. /인 경우 포럼 홈 페이지로 이동합니다. SSO URL 구성에 대해 더 자세히 알아보려면 WP Discourse 팁과 트릭을 참고하세요.