# 로그인된 사용자가 SSO로 인증하거나 비공개 그룹에 직접 접근할 수 있는 Discourse 링크 추가

**URL:** https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240
**Category:** WordPress
**Created:** [1월 18, 2023, 10:19오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240 "2023-01-18T22:19:45Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![rodrigo.braga](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rodrigo.braga/32/212778_2.png) [@rodrigo.braga](https://meta.discourse.org/u/rodrigo.braga)
#### Post date: [1월 18, 2023, 10:19오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/1 "2023-01-18T22:19:45Z")

</div>

WPDiscourse 플러그인을 사용하여 Discourse의 SSO 제공자로 WordPress 사이트를 운영하고 있습니다. 포럼은 공개되어 있지만, 일부 비공개 그룹이 있습니다.

WordPress 사이트에서 사용자를 Discourse의 비공개 그룹으로 이동시키는 버튼을 추가하려면, [여기](https://meta.discourse.org/t/wp-discourse-plugin-tips-and-tricks/50757#create-an-sso-login-link-10)에 언급된 SSO URL을 사용하여 사용자가 “Oops! That page doesn’t exist or is private.” 페이지로 이동하는 것을 방지하고 있습니다.

하지만 사용자가 이미 Discourse에서 SSO를 통해 인증을 마친 상태이고, 다시 같은 버튼을 클릭하면 로그인 화면으로 다시 이동하게 됩니다. 로그인 시 “로그인 상태 유지” 체크박스를 선택한 경우에도 마찬가지입니다. 이상적으로는 사용자가 [Discourse SSO](https://meta.discourse.org/t/13045?silent=true)로 인증을 마친 후에는 비공개 그룹으로 자유롭게 이동할 수 있어야 합니다.

더 나은 설정 방법이 있을까요?  
WP 로그인 페이지에 코드를 추가하여 사용자가 이미 Discourse에 로그인되어 있는지 확인하고, 그렇다면 URL의 “return\_path” 인자에 포함된 페이지로 리다이렉트하는 방법을 생각해 보았습니다. 이것이 해결책이 될까요? 그렇다면 이를 위해 사용할 수 있는 함수나 API 호출은 무엇일까요?

감사합니다!

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [1월 19, 2023, 1:11오전 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/2 "2023-01-19T01:11:35Z")

</div>

> [@rodrigo.braga](#):
>
> 하지만 사용자가 이미 Discourse에서 SSO를 통해 인증을 마쳤고, 다시 돌아와서 동일한 버튼을 누르면 로그인 시 “로그인 상태 유지” 확인란을 선택했더라도 다시 로그인 페이지로 이동하게 됩니다.

사용자가 이미 WordPress 사이트에 로그인되어 있다면 이런 일이 일어나서는 안 됩니다. 이런 문제가 발생하는 사용자들이 WordPress에 로그인되어 있는지 명확히 설명해 주실 수 있나요? 로그인되어 있다면, `return_path` 인자에 설정한 Discourse URL로 조용히 리다이렉트되는 것이 정상입니다.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [1월 19, 2023, 12:44오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/3 "2023-01-19T12:44:54Z")

</div>

안녕하세요, @rodrigo.braga 🙂

저도 조금 혼란스럽습니다. 다음 사항을 확인해 주실 수 있을까요?

### 설정

아래 설명에 따라 WordPress를 Discourse의 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 제공자(Provider)로 설정했습니다.

> [@WP Discourse와 DiscourseConnect로 단일 로그인(SSO) 구성하기](https://meta.discourse.org/t/configure-single-sign-on-sso-with-wp-discourse-and-discourseconnect/223494):
>
> [WP Discourse](https://github.com/discourse/wp-discourse) 플러그인을 사용하면 WordPress에서 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)를 설정하여 사용자가 WordPress 계정으로 Discourse에 로그인하거나, Discourse 계정으로 WordPress에 로그인할 수 있습니다. [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)를 설정하기 전에 먼저 WordPress에 [WP Discourse](https://github.com/discourse/wp-discourse) 플러그인을 설치하고 Discourse와 연결해야 합니다. 시작할 준비가 되었다면, 먼저 이 짧은 영상을 시청하시거나 아래 지침을 따르세요. 다음 단계 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)를 설정한 후에는 다음 주제를 확인해 보시는 것이 좋습니다. [WordPress 게시물을 Discourse에 게시하기](https://meta.discourse.org/t/wp-discourse-and-publishing-posts-to-discourse/223492/1)[WordPress 댓글에 Discourse 사용하기](https://meta.discourse.org/t/wp-discourse-and-commenting/223493/1)지침 시크릿 키 설정 [WP Discourse](https://github.com/discourse/wp-discourse)를 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 제공자(Provider) 또는 클라이언트(Client)로 설정하든, 시크릿 키를 설정해야 합니다. “[DiscourseC…](https://meta.discourse.org/t/13045?silent=true)

### 시나리오 1

1. 사용자가 WordPress 사이트에 있으며 WordPress에 로그인되어 있지 않은 상태
2. 사용자가 WordPress에서 `https://discourse.example.com/session/sso?return_path=/g/private_group` 형식의 링크를 클릭
3. WordPress 로그인 화면이 표시됨
4. 사용자가 WordPress에 로그인
5. 사용자가 `https://discourse.example.com/g/private_group`으로 리디렉션됨
6. [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)를 통해 Discourse에 로그인되었고 `private_group`의 멤버이므로 `private_group`이 표시됨

현재 이 상태인가요?

### 시나리오 2

1. 사용자가 WordPress 사이트에 있으며 WordPress에 로그인되어 있는 상태
2. 사용자가 WordPress에서 `https://discourse.example.com/session/sso?return_path=/g/private_group` 형식의 링크를 클릭
3. WordPress 로그인 화면이 표시됨

현재 이 상태인가요?

---

<div class="post-metadata">

### Author: ![rodrigo.braga](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rodrigo.braga/32/212778_2.png) [@rodrigo.braga](https://meta.discourse.org/u/rodrigo.braga)
#### Post date: [1월 27, 2023, 8:02오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/4 "2023-01-27T20:02:56Z")

</div>

Simon, 감사합니다. 네, 사용자는 WordPress에 로그인되어 있습니다.

제 시나리오에서 특이한 점은 다음과 같습니다. 주 WordPress 사이트(WPSite1)가 [WP Discourse](https://github.com/discourse/wp-discourse)를 사용하여 Discourse의 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 제공자 역할을 하고 있습니다.

그리고 두 번째 WordPress 사이트(WPSite2)는 [WP Remote User Synch 플러그인](https://wordpress.org/plugins/wp-remote-users-sync/)을 사용하여 WPSite1과 사용자 데이터베이스를 동기화하고 있습니다.

다만, WPSite2에 로그인한 후 WPSite1로 이동하면 WPSite1에도 이미 로그인되어 있으므로, 언급하신 기대되는 동작과 어떻게 충돌하는지 이해가 되지 않습니다.

하지만 실제로 일어나는 일은 다음과 같습니다. [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 제공자인 WPSite1에 로그인한 후 `https://discourse.example.com/session/sso?return_path=/g/private_group`와 같은 URL을 클릭하면, SSO WP 로그인 폼으로 이동하게 됩니다.

---

<div class="post-metadata">

### Author: ![rodrigo.braga](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rodrigo.braga/32/212778_2.png) [@rodrigo.braga](https://meta.discourse.org/u/rodrigo.braga)
#### Post date: [1월 27, 2023, 8:07오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/5 "2023-01-27T20:07:31Z")

</div>

감사합니다, Angus.

시나리오 2가 해당되는 경우입니다.  
지침을 다시 확인해 보겠지만, SSO 로그인이 작동하므로 모든 설정이 올바르게 되어 있다고 생각합니다. 문제는 로그인 페이지가 사용자가 이미 인증된 상태임을 인식하지 못하는 것입니다.

---

<div class="post-metadata">

### Author: ![rodrigo.braga](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rodrigo.braga/32/212778_2.png) [@rodrigo.braga](https://meta.discourse.org/u/rodrigo.braga)
#### Post date: [1월 27, 2023, 8:25오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/6 "2023-01-27T20:25:49Z")

</div>

hey @simon and @angus, 다시 한번 감사드립니다. 문제의 원인을 찾았어요.

[DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 설정을 검토하던 중 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) URL이 [https://mydomain.org으로](https://mydomain.xn--org-ky7m580d) 설정되어 있는 것을 발견했고, Discourse WP 플러그인의 권장 사항을 확인해 보니 [https://www.mydomain.org을](https://www.mydomain.xn--org-of0o) 사용하라고 되어 있었어요. www를 추가해서 업데이트한 후부터는 예상대로 정상적으로 작동하기 시작했습니다.

감사합니다.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2월 26, 2023, 8:25오후 UTC](https://meta.discourse.org/t/add-links-to-discourse-that-allow-users-to-authenticate-via-sso-or-access-private-groups-directly-if-they-are-logged-in-already/252240/7 "2023-02-26T20:25:54Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
