Я развернул новый плагин для WordPress, который использует SSO от Discourse, но столкнулся со странным багом, который проявляется только на боевом сайте.
На локальной машине я могу войти в систему и использовать параметр redirect_url, чтобы вернуться на страницу. Однако на боевом сайте SSO работает только в том случае, если redirect_url указывает на URL wp-admin, например:
Вам уже встречалась такая проблема? Есть ли идеи, куда стоит посмотреть? Если проблема сохранится, мне придется реализовать собственный механизм перенаправления для перехвата wp-admin.
Я вполне уверен, что здесь имеет место либо неправильно настроенный обратный прокси, либо что-то в этом роде. Не используете ли вы случайно Cloudflare?
Ха-ха, это не моё решение, сайт использует Cloudflare в качестве основного кэша. Мне нужно будет провести исследование обратных прокси и посмотреть, можно ли настроить какие-либо параметры в CF.
Существует десятки тем о проблемах, вызванных оптимизациями Cloudflare. Вы можете использовать Cloudflare в качестве CDN, и тогда Discourse будет перенаправлять только те запросы, которые могут быть закэшированы через Cloudflare.
Вы также можете временно отключить эти оптимизации и посмотреть, решит ли это проблему.
Да, это странное сочетание проблем, частично связанное, по-видимому, и с директорией установки WordPress. Пока я написал обходное решение, которое всегда перенаправляет на /core/wp-admin, а затем есть финальный параметр ?final_redirect_url, который перехватывает мой собственный хук и выполняет действия для возврата туда, куда нам нужно.