У меня возникла проблема с интеграцией Discourse и WordPress. WordPress настроен как мастер, а Discourse — как слейв. Синхронизация пользователей работает корректно, как и синхронизация комментариев.
Однако, если пользователь входит в WordPress (используя стандартный wp-login.php), он не автоматически авторизуется в Discourse. Пользователю нужно снова нажать «Войти» на Discourse, чтобы получить доступ.
Я предполагаю, что вы имеете в виду, что процесс входа начался в WordPress. И что когда они переходят на Discourse и нажимают «Войти», им не нужно снова вводить свои данные для входа в WordPress. Если это так, то то, что вы описываете, — это ожидаемое поведение. Прямой вход в WordPress (без предварительного перехода на Discourse) не автоматически входит в систему на Discourse в фоновом режиме. Процесс входа должен быть инициирован из Discourse, чтобы войти в систему на Discourse.
Так работают большинство систем идентификации, то есть они не разделяют «сессии» между различными службами в системе. Я понимаю, что в некоторых системах идентификации, таких как Google, вы входите, например, в Google Analytics, а затем, когда переходите в Gmail, вы всё ещё входите в систему. Но такой опыт кросс-доменных сессий должен поддерживаться поставщиком системы (то есть Google) и не встроен в стандартные протоколы идентификации, используемые на платформах, таких как Discourse и WordPress.
Discourse и WordPress — это разные системы с открытым исходным кодом, поддерживаемые разными людьми. Плагин WP Discourse позволяет обрабатывать вход между ними, но он никогда не станет полным решением для идентификации и сессий, аналогичным тому, что такие компании, как Google, реализуют между своими различными службами.
Мой совет — не тратить время на попытку воссоздать то, что Google и подобные службы делают со своим кросс-доменным опытом сессий. Я знаю, что многим администраторам сообществ это хотелось бы (мне несколько раз предлагали это сделать), однако ваши пользователи будут меньше заботиться об этом, чем вы думаете.