Проверка GitHub в Discourse

:discourse2: Краткое описание Проверяет, что пользователь владеет указанным аккаунтом GitHub
:hammer_and_wrench: Ссылка на репозиторий GitHub - discourse/discourse-github-verification: Verifies that a Discourse user is the owner of a Github account · GitHub
:open_book: Руководство по установке Как установить плагины в Discourse

Возможности

Этот плагин позволяет пользователям подтвердить, что они владеют указанным аккаунтом GitHub. Это отдельно от входа через GitHub. Плагин просто отображает ссылку на аккаунт GitHub пользователя на его карточке и в профиле.

В настройках пользователя появляется новая вкладка (GitHub). Если пользователь ещё не подключил свой аккаунт, ему будет показана кнопка для подключения к GitHub. Если аккаунт уже подключён, пользователь увидит ссылку на свой аккаунт GitHub и кнопку для отключения аккаунта GitHub от профиля Discourse.

Если у пользователя подключён аккаунт GitHub, ссылка на него будет отображаться на карточке пользователя и в его профиле.

Плагин добавляет административный API-эндпоинт /github-verification/users.json, который возвращает массив всех пользователей с подключённым аккаунтом GitHub. Ответ выглядит следующим образом:

[
  {
    "id": 1,
    "username": "markvanlan",
    "github_username": "markvanlan"
  }
]

Настройка

Создание OAuth-приложения в GitHub

  • Следуйте инструкциям GitHub по созданию OAuth-приложения. В настройках OAuth-приложения необходимо указать два важных параметра:

    • URL главной страницы — главная страница вашего экземпляра Discourse (например, https://meta.discourse.org)

    • URL обратного вызова авторизации — главная страница вашего экземпляра Discourse плюс “/github-verification” (например, https://meta.discourse.org/github-verification)

Настройка параметров Discourse

Параметры можно найти по адресу /admin/site_settings/category/all_results?filter=discourse_github_verification.

  • discourse github verification enabled — включает плагин при установке галочки в панели настроек сайта (/admin/site_settings/category/all_results?filter=discourse_github_verification).

  • discourse github verification client id — идентификатор клиента (Client ID) вашего OAuth-приложения GitHub.

  • discourse github verification client secret — секретный ключ клиента (Client secret) вашего OAuth-приложения GitHub.

Важное замечание

Этот плагин не учитывает существующую конфигурацию входа через GitHub. Discourse поддерживает эту функцию по умолчанию, но плагин discourse-github-verification не использует существующие настройки github client id и github client secret сайта. В случае, если они уже заполнены, их, вероятно, можно было бы использовать вместо дублирования настроек. Также плагин не знает, входил ли пользователь в Discourse через GitHub ранее. Было бы удобно автоматически определять это.


Благодарим компанию Sailpoint за спонсирование этой работы и открытие исходного кода проекта :tada:

11 лайков

Для тех, кто интересуется, как может быть полезен этот плагин: мы разработали его для работы в связке с плагином геймификации.

Мы позволяем нашим пользователям получать баллы в нашей программе для участников, внося вклад в наши репозитории на GitHub. Мы создали этот плагин, чтобы убедиться, что пользователь действительно владеет тем аккаунтом GitHub, о котором заявляет. Когда в GitHub происходит событие, связанное с вкладом, мы проверяем наш список пользователей с подключёнными аккаунтами GitHub и определяем, существует ли этот аккаунт на форуме. Если да, мы начисляем им положенные баллы.

3 лайка