Discourse SSO с OAuth2

Я хочу настроить единый вход (SSO) с использованием GitHub OAuth. Когда пользователь входит на мой сайт через GitHub, он должен также автоматически авторизоваться в Discourse. Комментарии Discourse встроены на сайт.

Как мне это реализовать?

Для подключения OAuth2 к вашему собственному сайту можно использовать этот плагин: Discourse OAuth2 Basic

Функция «Вход через GitHub» уже встроена в Discourse, а инструкции по настройке вы найдете здесь: Configure GitHub login for Discourse

Я всё ещё запутался.

Если это было неясно, у меня есть:

Веб-сайт с OAuth от Github.
Discourse с OAuth от Github.

Ни один из них не имеет других методов входа.
Когда пользователь входит в мой веб-сайт, он должен автоматически войти и в Discourse.

Чего мне не хватает, так это связи между ними. Как мне авторизовать пользователя в Discourse, когда он проходит аутентификацию через OAuth от Github на моём веб-сайте?

Когда кто-то входит на ваш веб-сайт, любое взаимодействие происходит только между GitHub и вашим сайтом.

То есть:
Ваш сайт обращается к GitHub, чтобы проверить, существует ли пользователь в их базе данных.
GitHub отвечает «да» (или «нет») и возвращает данные пользователя или токен аутентификации, как запрошено вашим сайтом.
Теперь пользователь входит в ваш сайт.

В этой схеме нет никакого взаимодействия с Discourse. То, что вам нужно здесь, — это способ сообщить Discourse, что данный пользователь только что вошел и ему также необходимо войти в Discourse.

Вам нужен способ добавить вход в Discourse в очередь вместе с входом на ваш сайт, чтобы Discourse знал, когда пользователь вошел или вышел.

Auth0 справляется с этим довольно хорошо из коробки.
Другой способ — использовать Discourse в качестве вашего SSO-сервера.

Спасибо за ответы!

Я понял, что используемый мной плагин аутентификации работает через OAuth и выдаёт JWT. Думаю, что discourse-jwt мне подойдёт.