Мы используем Discourse с SSO, и всё работает отлично.
Однако я столкнулся с необычной ситуацией.
Мы используем ссылки на личные сообщения Discourse на нашем внешнем сайте (paddling.com) для создания нового личного сообщения на форумах Discourse (forums.paddling.com).
Если пользователь авторизован на форумах, всё работает именно так, как ожидалось.
Если пользователь входит в систему на paddling.com (но сначала не переходил на форумы), то при клике на ссылку для создания нового сообщения просто открываются форумы (без создания нового сообщения).
Если пользователь кликает на ссылку сообщения во второй раз, то сообщение создаётся.
Мне кажется, что проблема в том, что, хотя пользователь авторизован на paddling.com, он не авторизован на форумах, пока не откроет страницу на forums.paddling.com.
Вы, возможно, сможете использовать подход, описанный здесь: Creating pre-filled personal message links. Я не пробовал использовать его с параметром return_path для создания предварительно заполненного личного сообщения, но, думаю, это можно заставить работать.
Предварительно заполненное личное сообщение работает корректно (при условии, что пользователь авторизован). Я попрослю нашего разработчика изучить возможность использования return_path.
Я только что перечитал свой предыдущий ответ. Я хотел написать, что подход, описанный в этой теме, должен работать: Создание ссылки для входа через SSO. Именно так наш плагин для WordPress создаёт ссылки, которые автоматически авторизуют пользователей в Discourse. То, что я ещё не тестировал, — это использование этого подхода с URL предзаполненного сообщения, установленным в качестве return_path.