SSO с WordPress и Discourse в качестве провайдера: поток и логика входа

Миллион благодарностей @simon, вы помогли мне настроить это, и теперь я наконец вижу кнопку [Войти через Discourse] на своей странице WordPress. Сейчас мне нужно немного подумать и разобраться в логике и потоке входа, чтобы сделать процесс оплаты для моих участников на WordPress более удобным.

Сейчас мой процесс входа на странице выглядит так:

Вход в WordPress > выбор «Войти через Discourse» > страница входа в Discourse > успешный вход > перенаправление обратно на сайт WordPress.

Подскажите, пожалуйста, как настроить следующее:

  1. Я уже настроил перенаправление обратно на WordPress после входа участника в WordPress через Discourse. Но как настроить так, чтобы при входе в Discourse через форму входа в Discourse происходило перенаправление обратно на Discourse, но при этом в WordPress пользователь автоматически также входил в систему?

  2. Отключить все оригинальные методы входа в WordPress, оставив только вход через Discourse.

Вы можете добавить ссылку для входа на ваш форум Discourse, похожую на эту:

<a href="http://example.com/?discourse_sso=1&redirect_to=http://discourse.example.com">Войти в WordPress и вернуться в Discourse</a>

Ссылка должна указывать на базовый URL вашего сайта WordPress. Вам нужно установить параметр запроса discourse_sso=1 в URL. Параметр redirect_to должен быть установлен на URL, куда вы хотите перенаправить пользователей.

Возможно перенаправлять пользователей либо на ваш сайт WordPress, либо обратно в Discourse. Я считаю, что в большинстве случаев будет полезнее перенаправлять пользователей на сайт WordPress, а не в Discourse. Например:

<a href="http://example.com/?discourse_sso=1&redirect_to=http://example.com/shop">Войти в WordPress из сообщения на Discourse</a>

Это можно сделать, но вам нужно быть осторожным, чтобы не заблокировать себя из WordPress, если что-то пойдёт не так. Возможный подход — защитить страницу /wp-login.php вашего WordPress паролем, который знают только администраторы вашего сайта WordPress.