У меня уже настроен и работает SSO, и всё функционирует отлично. Однако я хотел бы автоматически входить в систему пользователей, когда они посещают наше сообщество Discourse, если они уже авторизованы на нашем основном сайте. По сути, нужно нажать кнопку «Войти», чтобы инициировать SSO, и вернуть их обратно в Discourse, откуда они пришли.
Я только начал изучать код входа, но надеялся, что кто-то другой сможет поделиться опытом о том, как инициировать вход из пользовательского компонента темы.
Это возможно, но может вызвать проблемы с входом на сайт вашего SSO-провайдера, если SSO будет настроен неправильно. Более безопасный подход — добавить на веб-сайт ссылку для входа через SSO, которая автоматически авторизует пользователей в Discourse и перенаправит их на указанную страницу после нажатия. Подробнее см. Create a DiscourseConnect login link.
Можете ли вы подробнее рассказать, с какими проблемами я могу столкнуться?
В моём конкретном случае посетители не будут сначала переходить в основное приложение — в рамках конкретной сессии. Они будут заходить на сайт сообщества, но в какой-то момент уже были авторизованы в основном приложении. Я хотел бы автоматически подтягивать сессию входа без какого-либо взаимодействия со стороны пользователя.
Я столкнулся с этой проблемой, когда пытался авторизовать пользователей в Discourse через WordPress, незаметно перенаправляя их в Discourse, а затем обратно в WordPress в рамках процесса входа в WordPress. Если SSO был настроен неправильно, пользователи оказывались заблокированными в WordPress.
Если вы хотите попробовать такой подход, вам необходимо включить настройку sso allows all return paths в Discourse. После этого вы сможете перенаправлять пользователей на: