Вы не понимаете, что я хочу донести. Я спрашиваю не о получении данных пользователя из Discourse после входа. Пожалуйста, внимательно изучите весь описанный мной процесс и скажите, возможно ли это реализовать с помощью Discourse, или мне следует использовать собственный подход.
В настоящее время у меня есть проект, построенный на фреймворке Laravel, и я хочу предоставить пользователям доступ к форуму Discourse для обратной связи. Я решил реализовать вход через SSO для Discourse. Я создал учётную запись администратора в Discourse и включил необходимые настройки для SSO-входа, включая активацию SSO, установку URL перенаправления и настройку секретного ключа.
Теперь я добавил кнопку «Discourse Connect» внутри своего проекта. Я хочу, чтобы при нажатии на эту кнопку пользователи регистрировались или входили с использованием моих учётных данных и автоматически авторизовывались в Discourse. Когда пользователь нажимает на кнопку «Discourse Connect», его перенаправляют на базовый URL моего сообщества с конечной точкой сессии/SSO, откуда он снова перенаправляется на URL «Discourse Connect». В запросе я получаю параметры SSO и sig, которые, как я понимаю, предназначены для проверки подлинности. Однако мне нужен user_id или какой-либо идентификатор, чтобы извлечь данные пользователя из моей базы данных для проверки, аутентификации и входа в Discourse.
Мой вопрос: существует ли в Discourse API или какой-либо механизм, который мог бы возвращать user_id вместе с параметрами SSO и sig в запросе? Это важно, потому что без получения данных пользователя в запросе мне пришлось бы заставлять пользователя входить в систему снова, что создаст плохой пользовательский опыт. По сути, когда пользователь входит в мой проект и нажимает кнопку «Discourse Connect», срабатывает URL «Discourse Connect», и я получаю параметры SSO и sig. Для аутентификации пользователя мне нужно извлечь данные пользователя из базы данных, но это потребует повторного входа пользователя, чего я хочу избежать.
Мне нужен бесшовный опыт: если пользователь уже однажды вошёл в систему, ему не нужно входить снова. Он должен иметь возможность получить доступ к форуму Discourse, используя свои учётные данные из проекта, напрямую.