Отлично, что вы это обнаружили. Если вы находите ссылки на настройку enable_sso на страницах настроек плагина WP Discourse, то эти ссылки должны были быть изменены на использование нового имени настройки enable_discourse_connect в самом последнем выпуске плагина (версия 2.3.0).
Если в документации плагина на Meta всё ещё встречаются ссылки на старое имя настройки, нам нужно будет обновить их, чтобы они использовали новое имя. Я проверю это в начале следующей недели.
Обратите внимание, что при настройке DiscourseConnect администратор может обойти вход через SSO, перейдя на страницу /u/admin-login вашего сайта Discourse. Введите свой адрес электронной почты в форму на этой странице. На ваш email будет отправлена одноразовая ссылка для входа.
Ладно… это действительно вывело меня на страницу входа, но после входа меня сразу же выкидывает обратно и перенаправляет на страницу входа.
Выход и перенаправление также происходят при использовании метода /u/admin-login. Неужели есть какое-то другое значение, которое мне нужно установить или снять?
–редактирование для добавления–
Есть ли способ проверить значения настроек администратора через rails c cli?
discourse_connect_url (должна быть установлена в адрес главной страницы вашего сайта WordPress)
discourse_connect_secret (убедитесь, что её значение совпадает с тем, что вы указали в настройке DiscourseConnect Secret Key на вашем сайте WordPress)
Также, вероятно, стоит включить настройку сайта verbose_discourse_connect_logging в Discourse. При включённой настройке вы сможете получить полезные детали о причине проблемы в журналах ошибок Discourse.
В WordPress убедитесь, что вы заполнили настройку DiscourseConnect Secret Key. Единственная другая настройка, которую необходимо включить в WordPress, — это настройка Enable DiscourseConnect Provider.
@simon огромное спасибо за совет с verbose_discourse_connect_logging!
Итак, enable_discourse_connect имеет значение false, а enable_local_logins — true.
Возможно, кто-то знает, что здесь происходит?
Давайте нажмём на ссылку для входа по электронной почте из админ-панели
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
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)
Здесь что-то пошло не так
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)
Теперь просто отображается экран входа, и всё работает как надо
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)
Кстати, знает ли кто-нибудь, есть ли команда в $rails c cli, которая выведет все пары настроек администратора и их значения? Думаю, я мог бы просто сбросить все настройки DiscourseConnect и начать заново. Или, чёрт возьми, может быть, есть команда cli, которая сбросит все настройки администратора до исходного состояния?
—редактирование для добавления—
lol, я только что нашёл SiteSetting.all — это просто жёсткий дамп информации. Есть ли у него фильтры?
Итак, я пытаюсь добавить новый аккаунт и получаю следующее сообщение об ошибке:
Мы не можем определить, был ли создан ваш аккаунт. Убедитесь, что включены файлы cookie.
Что?! Может, мне просто переустановить???
—редактирование—
Я получил письмо с подтверждением регистрации, оно сработало, но когда я попытался войти как новый пользователь, получил:
Модератор должен вручную одобрить ваш новый аккаунт, прежде чем вы сможете получить доступ к этому форуму. Вы получите письмо, когда ваш аккаунт будет одобрен!
lol…
—редактирование—
Просто хотел сказать: мне нравится сложность Discourse. Это удивительный программный продукт. Единственный форум, который действительно близок к нему, — это XF. Много лет назад, когда [unknown] был главным разработчиком SimpleMachines, это тоже было прекрасно, но та эпоха давно прошла. Спасибо всем разработчикам. Вы создали отличный, элегантный инструмент.
Я использовал Docker, но настроил обратный прокси через Apache2, чтобы запустить его в качестве виртуального хоста в панели управления Hestia. Я установил Hestia с Apache2 вместо Nginx, поэтому и использовал Apache2.
Если посмотреть в конец этой темы, можно увидеть мою конфигурацию.