# DiscourseConnect로 다시 로그인할 수 없습니다

**URL:** https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519
**Category:** WordPress
**Created:** [8월 7, 2021, 1:04오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519 "2021-08-07T01:04:52Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 7, 2021, 1:04오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/1 "2021-08-07T01:04:52Z")

</div>

[이 안내](https://meta.discourse.org/t/wp-discourse-plugin-installation-and-setup/50752)를 따라 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 설치를 잘못 진행한 것 같습니다.

다행히 안내문에 관리자 설정을 직접 조작하는 방법이 포함되어 있지만, 제가 특별히 필요한 설정은 변경되었을까요?

안내문에는 _SiteSetting.enable\_sso=false_로 설정하라고 되어 있는데:

```plaintext
root@hestia-app:/var/www/discourse# rails c
[1] pry(main)> SiteSettings.enable_sso=false
NoMethodError: undefined method `enable_sso=' for SiteSettings:Module
from (pry):1:in ` __pry__'
[2] pry(main)> 

```

새로운 관리자 설정이 무엇인지 아시는 분 계신가요?

감사합니다!

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 7, 2021, 1:07오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/2 "2021-08-07T01:07:36Z")

</div>

아, Discourse가 친절하게 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)에 대한 기사를 링크해 주었고, 보라:

```plaintext
cd /var/discourse
./launcher enter app
rails c
irb > SiteSetting.enable_discourse_connect = false
irb > SiteSetting.enable_local_logins = true
irb > exit
exit

```

---

<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: [8월 7, 2021, 1:12오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/3 "2021-08-07T01:12:11Z")

</div>

그걸 발견해 주셔서 감사합니다. [WP Discourse](https://github.com/discourse/wp-discourse) 플러그인의 옵션 페이지에서 `enable_sso` 설정에 대한 참조를 확인하셨다면, 해당 참조들은 플러그인의 최신 릴리스(버전 2.3.0)에서 새로운 `enable_discourse_connect` 설정 이름으로 변경되었어야 합니다.

만약 Meta의 플러그인 문서에 여전히 구식 설정 이름에 대한 참조가 남아 있다면, 이를 새로운 설정 이름으로 업데이트해야 합니다. 다음 주 초에 이를 다시 확인하겠습니다.

참고로 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)를 설정하는 동안 관리자는 Discourse 사이트의 `/u/admin-login` 페이지로 이동하여 SSO 로그인을 우회할 수 있습니다. 해당 페이지의 양식에 이메일 주소를 입력하면, 일회용 로그인 링크가 이메일로 전송됩니다.

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 7, 2021, 1:15오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/4 "2021-08-07T01:15:59Z")

</div>

ㅋㅋ

음… 이렇게 하니 로그인 페이지는 뜨긴 하는데, 로그인하면 로그아웃되고 다시 로그인 페이지로 리다이렉트됩니다.

`/u/admin-login` 메서드에서도 로그아웃과 리다이렉트가 발생합니다. 설정하거나 해제해야 할 다른 값이 있을까요?

–추가 편집–

rails c CLI에서 관리자 설정 값을 확인할 수 있는 방법이 있을까요?

---

<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: [8월 7, 2021, 1:33오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/5 "2021-08-07T01:33:19Z")

</div>

> [@Seal](#):
>
> rails c CLI에서 관리자 설정 값을 확인할 수 있는 방법이 있나요?

Discourse에서는 다음 설정이 필요합니다:

- `enable_discourse_connect`
- `discourse_connect_url` (WordPress 사이트의 홈 페이지로 설정해야 합니다)
- `discourse_connect_secret` (WordPress 사이트의 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) Secret Key 설정에 입력한 값과 일치하는지 확인하세요)

Discourse에서 `verbose_discourse_connect_logging` 사이트 설정도 활성화하는 것이 좋습니다. 이 설정을 활성화하면 Discourse 오류 로그에서 문제의 원인에 대한 유용한 세부 정보를 얻을 수 있습니다.

WordPress에서는 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) Secret Key 설정을 채워 넣었는지 확인하세요. WordPress에서 활성화해야 하는 다른 유일한 설정은 Enable [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) Provider 설정입니다.

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 7, 2021, 2:44오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/6 "2021-08-07T02:44:32Z")

</div>

@simon `verbose_discourse_connect_logging` 팁을 알려주셔서 정말 감사합니다!

자, `enable_discourse_connect`는 `false`이고 `enable_local_logins`는 `true`입니다.

여기서 무슨 일이 일어나고 있는지 아는 분이 있을까요?

**관리자 로그인 이메일 링크를 클릭해 보겠습니다**

```plaintext
Started GET "/session/email-login/5356b2413338852f25d4382e34fb53a6" for {my.ip.address} at 2021-08-07 02:33:43 +0000
Processing by SessionController#email_login_info as HTML
  Parameters: {"token"=>"5356b2413338852f25d4382e34fb53a6"}
  Rendered default/empty.html.erb within layouts/application (Duration: 0.1ms | Allocations: 11)
  Rendered layout layouts/application.html.erb (Duration: 41.1ms | Allocations: 8102)
Completed 200 OK in 66ms (Views: 43.4ms | ActiveRecord: 0.0ms | Allocations: 12210)
Started GET "/session/email-login/5356b2413338852f25d4382e34fb53a6.json" for {my.ip.address} at 2021-08-07 02:33:48 +0000
Processing by SessionController#email_login_info as JSON
  Parameters: {"token"=>"5356b2413338852f25d4382e34fb53a6"}
Completed 200 OK in 25ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 4548)

```

**자, 이제 Discourse 설치 페이지의 로그인 링크를 클릭해 보겠습니다**

```plaintext
Started GET "/session/csrf" for {my.ip.address} at 2021-08-07 02:33:56 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 2ms (Views: 0.3ms | Allocations: 308)

Started POST "/session/email-login/5356b2413338852f25d4382e34fb53a6" for {my.ip.address} at 2021-08-07 02:33:57 +0000
Processing by SessionController#email_login as */*
  Parameters: {"second_factor_method"=>"1", "timezone"=>"America/Denver", "token"=>"5356b2413338852f25d4382e34fb53a6"}
Completed 200 OK in 231ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 24272)

```

**여기서 문제가 발생합니다**

```plaintext
Started GET "/" for {my.ip.address} at 2021-08-07 02:33:58 +0000
Processing by ListController#latest as HTML
Redirected to http://my.discourse.install/login
Filter chain halted as :redirect_to_login_if_required rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.0ms | Allocations: 613)

```

**이제 로그인 화면이 정상적으로 렌더링됩니다 😉**

```plaintext
Started GET "/login" for {my.ip.address} at 2021-08-07 02:33:59 +0000
Processing by StaticController#show as HTML
  Parameters: {"id"=>"login"}
  Rendered static/login.html.erb within layouts/application (Duration: 38.2ms | Allocations: 1520)
  Rendered layout layouts/application.html.erb (Duration: 103.4ms | Allocations: 12203)
Completed 200 OK in 130ms (Views: 105.7ms | ActiveRecord: 0.0ms | Allocations: 16261)
Started GET "/login.html" for {my.ip.address} at 2021-08-07 02:34:04 +0000
Processing by StaticController#show as HTML
  Parameters: {"id"=>"login"}
  Rendered static/login.html.erb (Duration: 22.0ms | Allocations: 1352)
Completed 200 OK in 25ms (Views: 23.0ms | Allocations: 1970)

```

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 7, 2021, 2:50오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/7 "2021-08-07T02:50:53Z")

</div>

그리고, $rails c CLI에서 모든 관리자 설정/값 쌍을 덤프할 수 있는 명령어가 있는지 아시는 분 계신가요? 그냥 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) 관련 설정을 전부 초기화하고 처음부터 다시 시작할 수도 있을 것 같습니다. 아니면, 모든 관리자 설정을 초기 상태로 되돌리는 CLI 명령어가 있을 수도 있겠죠?

—추가 수정—

아, 방금 SiteSetting.all을 찾았네요. 이건 정말 방대한 양의 정보를 덤프하네요. 필터 기능이 있을까요?

—추가 수정—

다른 게시물에서 이 작은 보석을 발견했습니다:

`puts SiteSetting.all.map {|s| "#{s.name}: #{s.value}" } .join "\n"`

…그리고 [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true)와 관련된 모든 것을 리셋했습니다. 그런데 여전히 이상한 로그인 리디렉션이 발생하고 있습니다.

```plaintext
enable_bookmarks_with_reminders: t
meta_category_id: 2
staff_category_id: 3
lounge_category_id: 4
default_theme_id: 1
tos_topic_id: 4
guidelines_topic_id: 5
privacy_topic_id: 6
welcome_topic_id: 7
lounge_welcome_topic_id: 8
admin_quick_start_topic_id: 9
push_api_secret_key: {redacted}
send_welcome_message: f
has_login_hint: f
global_notice: 
default_trust_level: 1
default_email_digest_frequency: 1440
bootstrap_mode_enabled: t
title: {redacted}
site_description: {redacted}
short_site_description: {redacted}
login_required: t
must_approve_users: t
contact_email: {redacted}
contact_url: {redacted}
site_contact_username: system
company_name: {redacted}
base_font: oxanium
heading_font: system
logo: 3
logo_small: 4
force_https: t
allow_user_locale: t
categories_topics: 25
suggested_topics: 7
share_links: email
share_quote_buttons: email
default_dark_mode_color_scheme_id: 1
topics_per_period_in_top_summary: 25
unicode_usernames: f
enable_names: f
enable_user_directory: f
allow_anonymous_posting: t
anonymous_posting_min_trust_level: 0
allow_uncategorized_topics: f
show_copy_button_on_codeblocks: t
max_image_megapixels: 150
max_image_size_kb: 10000
max_attachment_size_kb: 10000
clean_up_uploads: t
external_system_avatars_enabled: f
vapid_public_key: {redacted}
vapid_private_key: {redacted}
vapid_public_key_bytes: {redacted}
vapid_base_url: {redacted}
enable_local_logins: t
enable_discourse_connect: f
pop3_polling_username: {redacted}
enable_discourse_connect_provider: f
discourse_connect_allows_all_return_paths: f
discourse_connect_url: 
discourse_connect_secret: 

```

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 7, 2021, 3:39오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/8 "2021-08-07T03:39:59Z")

</div>

그래서 새 계정을 추가하려고 했는데, 다음 오류 메시지가 나타났습니다:

**계정이 생성되었는지 감지할 수 없습니다. 쿠키가 활성화되어 있는지 확인해 주세요.**

뭐라고요? 그냥 다시 설치해야 하나요???

—추가 편집—

회원가입 확인 이메일은 받았고, 잘 작동했으며, 새 사용자로 로그인하려고 했을 때 다음 메시지가 떴습니다:

**이 포럼에 접근하려면 관리자가 새 계정을 수동으로 승인해야 합니다. 계정이 승인되면 이메일을 보내드리겠습니다!**

ㅋㅋ… 🤦‍♂️

—추가 편집—

_discourse의 복잡성은 정말 마음에 듭니다_. 정말 놀라운 소프트웨어입니다. 이 정도에 근접하는 포럼은 XF 정도입니다. 몇 년 전 [unknown]이 SimpleMachines의 메인 개발자였을 때, 그건 정말 멋진 것이었지만, 그 시대는 이미 오래 전에 끝났습니다. **모든 개발자분들께 감사드립니다. 여러분이 만든 이 훌륭한, 우아한 기계에요.**

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 8, 2021, 3:04오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/9 "2021-08-08T03:04:46Z")

</div>

실제 오류는 \*\*Can’t verify CSRF token authenticity.\*\*인 것 같습니다. 이 스레드에서 답을 찾았습니다: [Can't Login to Discourse - CSRF Token Authenticity](https://meta.discourse.org/t/cant-login-to-discourse-csrf-token-authenticity/54081)

apache2.conf 파일에 다음 내용을 추가했습니다:

```plaintext
RequestHeader set X-Forwarded-Proto https

```

오류 로그:

```plaintext
Started POST "/session" for {my.ip} at 2021-08-07 11:45:54 +0000
Processing by SessionController#create as */*
  Parameters: {"login"=>"{me}", "password"=>"[FILTERED]", "second_factor_method"=>"1", "timezone"=>"America/Denver"}
Can't verify CSRF token authenticity.
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Filter chain halted as :verify_authenticity_token rendered or redirected
Completed 403 Forbidden in 13ms (Views: 1.5ms | ActiveRecord: 0.0ms | Allocations: 898)

```

---

<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: [8월 9, 2021, 2:27오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/10 "2021-08-09T02:27:40Z")

</div>

> [@Seal](#):
>
> 실제 오류는 \*\*CSRF 토큰의 진위를 검증할 수 없습니다(Can’t verify CSRF token authenticity.)\*\*인 것 같습니다. 이 스레드에서 답을 찾았습니다: [Discourse에 로그인할 수 없음 - CSRF 토큰 진위 확인](https://meta.discourse.org/t/cant-login-to-discourse-csrf-token-authenticity/54081)

원인을 찾게 되어 기쁩니다. 궁금한 점이 있는데, 여러분의 Discourse는 어떻게 설정하셨나요? 표준 docker 설치를 사용하지 않는 것 같습니다.

> [@simon](#):
>
> Meta의 플러그인 문서에 여전히旧的 설정 이름에 대한 참조가 남아 있다면, 이를 새로운 설정 이름으로 업데이트해야 합니다. 다음 주 초에 다시 한번 확인해 보겠습니다.

[Install and configure the WP Discourse Wordpress plugin for Discourse](https://meta.discourse.org/t/wp-discourse-plugin-installation-and-setup/50752) 의 참조를 업데이트했습니다. 👍

---

<div class="post-metadata">

### Author: ![Seal](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Seal](https://meta.discourse.org/u/Seal)
#### Post date: [8월 9, 2021, 6:08오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/11 "2021-08-09T06:08:35Z")

</div>

Docker는 사용했지만, Hestia Control Panel에서 가상 호스트로 실행할 수 있도록 Apache2 뒤에서 리버스 프록시로 설정했습니다. Hestia를 Nginx 대신 Apache2로 설정했기 때문에 Apache2를 사용한 것입니다.

[이 스레드](https://meta.discourse.org/t/installed-discourse-in-docker-cannot-connect/199386/5)의 끝부분을 보면 제 설정을 확인할 수 있습니다.

---

<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: [9월 8, 2021, 6:09오전 UTC](https://meta.discourse.org/t/discourseconnect-wont-let-me-log-back-in/199519/12 "2021-09-08T06:09:09Z")

</div>

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