Настройте ваш Discourse как провайдера OAuth2/OIDC

:information_source: Сводка Провайдер Oauth2/OIDC. Пользователи могут создавать собственные приложения.
:hammer_and_wrench: Ссылка для скачивания https://vvpp.cc/s/GPmCV

Возможности

Мы знаем, что официальный Discourse не использует Discourse в качестве решения для провайдера Oauth2/OIDC.

Чтобы лучше реализовать сервис и позволить всем внести больше креативных идей в NL, мы на основе проекта Parkour-Vienna/distrust: Use discourse as an OIDC (OAuth 2.0) provider реализовали версию провайдера Oauth2/OIDC, где пользователи могут самостоятельно подавать заявки на создание приложений.

Настройка

Данные пользователей хранятся в MySQL, поэтому порядок действий следующий: сначала установите MySQL/MariaDB и выполните SQL-скрипт для создания базы данных; затем настройте файл distrust.yml, указав параметры подключения к базе данных; после этого выполните команду distrust genkey для генерации соответствующих RSA-ключей; далее в административной панели Discourse создайте провайдера Discourse Connect и введите необходимую информацию.

Затем выполните:

chmod +x distrust
./distrust

Перейдите по адресу IP:3000/apps, чтобы увидеть интерфейс управления приложениями.

Демонстрация

Когда пользователь использует вход через Oauth2/OIDC:

5 лайков

Кажется, это именно то, что я искал, но я не технический специалист, поэтому буду терпеливо ждать, пока кто-нибудь разберётся с этим :slight_smile:

Я делюсь переводом оригинального поста на английский с помощью DeepL.

1 лайк

Превосходное начало; я благодарен за ваш вклад в проект с открытым исходным кодом. Это действительно знаменует великолепное начало. :clap: :clap: :clap:

Круто!

./distrust

версия MySQL: 9.0.1

ошибка:

FTL не удалось инициализировать базу данных, ошибка = «не удалось выполнить миграцию базы данных: не удалось создать уникальный индекс: Ошибка 1064 (42000): Синтаксическая ошибка в SQL-запросе; обратитесь к руководству, соответствующему версии вашего сервера MySQL, чтобы узнать правильный синтаксис для использования вблизи «IF NOT EXISTS idx_user_authorizations_user_client \n\t\tON user_authorizations(user» на строке 1»