Не удается создать пользователя в Discourse из WP с новой формой регистрации

Честно говоря, я немного запутался в том, как это описание вашей проблемы связано с вашим предыдущим описанием проблемы, вызванной наличием двух разных форм регистрации в WordPress. Но, думаю, я всё же смогу вам помочь.

Один важный момент: не существует (и никогда не существовало) способа мгновенно войти в систему сразу в двух разных сервисах на двух разных доменах. Всякий раз, когда кажется, что вы вошли в сервис A на домене A, а при переходе в сервис B на домене B вы тоже уже авторизованы, на самом деле произошло следующее: вы вошли в сервис B через сервис A только после того, как посетили домен B и был инициирован процесс входа. До этого момента входа не было.

Ещё один важный момент: за исключением конкретного сценария, который вы описываете (когда нужно перенаправить пользователя в определённое место приложения, требующее сессию), большинство пользователей не обращают внимания на то, что иногда им нужно нажать кнопку «Войти» в сервисе B. По моему опыту работы с клиентами над решениями для идентификации, администраторы сайтов обычно гораздо более чувствительны к этому, чем сами пользователи.

Принцип работы здесь не изменился. Всякий раз, когда кажется, что пользователь «автоматически» вошёл в систему, на самом деле происходит следующее: его перенаправляют обратно в WordPress, а затем снова в Discourse после того, как его сессия в WordPress будет аутентифицирована. Если пользователь уже авторизован в WordPress, то кажется, что он «автоматически» вошёл в Discourse, поскольку это перенаправление происходит без каких-либо действий со стороны пользователя.

Один из способов инициировать «автоматический» вход и перенаправить пользователя в определённое место в Discourse после входа — использовать путь, который вы уже предоставили:

https://community.showprowess.com/session/sso?return_path=[любой путь в Discourse]

Если пользователь уже авторизован в WordPress, но ещё не вошёл в Discourse при использовании этого URL, произойдёт следующее:

  1. Discourse автоматически запускает процесс входа DiscourseConnect.
  2. Браузер пользователя перенаправляется в WordPress.
  3. Пользователь уже авторизован, поэтому его автоматически перенаправляют обратно в Discourse.
  4. Если в URL, использованном на шаге 1, было указано значение return_path, пользователь будет перенаправлен туда.

С точки зрения пользователя его браузер лишь ненадолго начнёт загружать страницу, но фактически он «автоматически» войдёт в Discourse и будет перенаправлен в определённую часть приложения.

Обратите внимание: параметр return_path можно установить как любой URL, даже на отдельный домен, если включить настройку сайта discourse connect allows all return paths и установить её значение в true.