Я интегрирую Discourse с WordPress через плагин WP Discourse и использую WordPress в качестве провайдера Discourse Connect, однако столкнулся с проблемой: когда неаутентифицированный пользователь заходит на инстанс Discourse и нажимает любую кнопку, требующую входа, он попадает в бесконечный цикл перенаправлений.
Желаемое поведение: пользователь нажимает кнопку входа в Discourse → перенаправляется на страницу входа в WordPress → проходит аутентификацию и возвращается на ту страницу Discourse, где был до этого. В настоящее время проблем нет, если пользователь уже аутентифицирован и заходит на инстанс Discourse после входа. Эта ошибка возникает, когда неаутентифицированный пользователь сначала заходит на инстанс Discourse.
Текущее поведение: пользователь нажимает кнопку входа в Discourse→перенаправляется на https://[инстанс-discourse]/session/sso?return_path=%2Ft%2F[страница-discourse, где был пользователь]%2F16 → перенаправляется на https://[сайт-wordpress]/?sso=[токен SSO]%3D%3D&sig=[токен подписи] → перенаправляется на https://[сайт-wordpress]/?sso=[токен SSO]%3D%3D&sig=[токен подписи]&redirect_to=%2F%3Fsso%[токен SSO]%253D%253D%26sig%3D[токен подписи] → и цикл продолжается рекурсивно, пока браузер не выдаст ошибку «слишком много перенаправлений».
Мне не удалось найти тему с решением этой проблемы; ближайшая из них —
но у нас везде включен SSL, и эта ошибка возникает во всех браузерах. Есть ли какие-либо предложения по исправлению этой проблемы?
В Chrome 97 была выпущена ошибка, связанная с обработкой файлов cookie при перенаправлениях, которая в некоторых случаях может нарушить работу DiscourseConnect. Пока мы ждем, когда Google выпустит исправление, мы добавили обходное решение в Discourse. Обновление вашего сайта Discourse до последней версии должно решить проблему. Попробуйте это и сообщите нам, поможет ли это.
Спасибо за ответ. Я только что проверил, что у нас установлена последняя версия, но, к сожалению, ошибка всё ещё сохраняется. Мы размещаем наш форум на Discourse, поэтому он должен обновляться автоматически. Ошибка остаётся такой же, как и раньше. Есть ли что-то ещё, что я мог бы попробовать? Возможно, какие-то настройки в хостинге Discourse могут вызывать эту проблему?
перейти в раздел «Логи» плагина WP Discourse и «скачать» их.
Затем отправьте мне логи в личное сообщение, и я внимательно изучу, что происходит. Обратите внимание, что логи не содержат никакой личной информации или секретов.
Проблема с перенаправлением, описанная здесь, кажется похожей на те, с которыми я сталкивался ранее на других сайтах с Woocommerce. В таких случаях проблема решалась установкой плагина WordPress, на который я дал ссылку.
Если это действительно причина проблемы, интересно, стоит ли нам рассмотреть возможность добавления поддержки Woocommerce непосредственно в плагин WP Discourse.
У меня нет точно такой же проблемы, как описал автор темы, но я уперся в стену при попытке перенаправлять наших пользователей обратно на то место, где они находились в форумах Discourse, после входа в систему
Просто хотел опубликовать здесь обновление: оказалось, что один из используемых нами плагинов влиял на возвращаемое значение функции wp_login_url() WordPress. После удаления этого плагина всё заработало как ожидалось!