WPDiscourse 플러그인을 사용하여 Discourse의 SSO 제공자로 WordPress 사이트를 운영하고 있습니다. 포럼은 공개되어 있지만, 일부 비공개 그룹이 있습니다.
WordPress 사이트에서 사용자를 Discourse의 비공개 그룹으로 이동시키는 버튼을 추가하려면, 여기에 언급된 SSO URL을 사용하여 사용자가 “Oops! That page doesn’t exist or is private.” 페이지로 이동하는 것을 방지하고 있습니다.
하지만 사용자가 이미 Discourse에서 SSO를 통해 인증을 마친 상태이고, 다시 같은 버튼을 클릭하면 로그인 화면으로 다시 이동하게 됩니다. 로그인 시 “로그인 상태 유지” 체크박스를 선택한 경우에도 마찬가지입니다. 이상적으로는 사용자가 Discourse SSO로 인증을 마친 후에는 비공개 그룹으로 자유롭게 이동할 수 있어야 합니다.
더 나은 설정 방법이 있을까요?
WP 로그인 페이지에 코드를 추가하여 사용자가 이미 Discourse에 로그인되어 있는지 확인하고, 그렇다면 URL의 “return_path” 인자에 포함된 페이지로 리다이렉트하는 방법을 생각해 보았습니다. 이것이 해결책이 될까요? 그렇다면 이를 위해 사용할 수 있는 함수나 API 호출은 무엇일까요?
사용자가 이미 WordPress 사이트에 로그인되어 있다면 이런 일이 일어나서는 안 됩니다. 이런 문제가 발생하는 사용자들이 WordPress에 로그인되어 있는지 명확히 설명해 주실 수 있나요? 로그인되어 있다면, return_path 인자에 설정한 Discourse URL로 조용히 리다이렉트되는 것이 정상입니다.
다만, WPSite2에 로그인한 후 WPSite1로 이동하면 WPSite1에도 이미 로그인되어 있으므로, 언급하신 기대되는 동작과 어떻게 충돌하는지 이해가 되지 않습니다.
하지만 실제로 일어나는 일은 다음과 같습니다. DiscourseConnect 제공자인 WPSite1에 로그인한 후 https://discourse.example.com/session/sso?return_path=/g/private_group와 같은 URL을 클릭하면, SSO WP 로그인 폼으로 이동하게 됩니다.