Discourse GitHub 验证

|||
-|-|-|
:discourse2: | 摘要 | 验证用户是否拥有指定的 GitHub 帐户
:hammer_and_wrench: | 存储库链接 | GitHub - discourse/discourse-github-verification: Verifies that a Discourse user is the owner of a Github account
:open_book: | 安装指南 | 如何在 Discourse 中安装插件

功能

此插件允许用户验证他们是否拥有指定的 GitHub 帐户。这与使用 GitHub 登录不同。它仅在用户卡片和个人资料中显示用户 GitHub 帐户的链接。

用户首选项中会添加一个新选项卡(“GitHub”)。当用户尚未连接其帐户时,会有一个连接帐户的按钮。如果用户已连接其帐户,他们将看到指向其 GitHub 帐户的链接以及断开其 GitHub 帐户与 Discourse 个人资料连接的按钮。

如果用户已连接 GitHub 帐户,将在其用户卡片和用户个人资料中显示一个链接。

该插件添加了一个管理员 API 端点 /github-verification/users.json,该端点返回一个包含所有已连接 GitHub 帐户的用户的数组。响应如下所示:

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

配置

设置 GitHub OAuth 应用

  • 按照 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 - 您的 GitHub OAuth 应用的客户端 ID

  • discourse github verification client secret - 您的 GitHub OAuth 应用的客户端密钥

注意事项

此插件未考虑现有的 GitHub 登录配置。Discourse 默认支持此功能,但 discourse-github-verification 插件不使用站点的现有 github client idgithub client secret 设置。如果这些设置已填写,我们或许可以使用它们,而不是重复设置。该插件也不知道用户是否已通过 GitHub 登录 Discourse。最好能自动检测到这一点。


感谢 Sailpoint 对此项工作的赞助并将其开源 :tada:

11 个赞

对于那些想知道这个插件有什么用的人来说,我们开发它是为了与游戏化插件协同工作。

我们允许用户通过为我们的 GitHub 存储库做出贡献来在我们的贡献者计划中获得积分。我们制作了这个插件,以便能够确保用户确实拥有他们声称拥有的 GitHub 帐户。当 GitHub 中发生贡献事件时,我们会查询已连接 GitHub 帐户的用户列表,并查看 GitHub 帐户是否存在于论坛中。如果存在,我们会给予他们指定的积分。

3 个赞