配置 Discourse 的 Discord 登录

:bookmark: 本指南介绍如何设置和配置 Discord 作为 Discourse 论坛的登录选项,包括如何限制访问特定的 Discord 服务器(guild)。

:person_raising_hand: 所需用户级别:管理员

配置后,Discord 将作为除其他身份验证方法外的又一个登录选项显示在您的论坛上:

设置 Discord OAuth2

创建一个 Discord 应用程序

  1. 访问 Discord 开发者门户
  2. 点击“New Application”(新建应用)
  3. 输入名称、上传图标并为您的应用程序添加描述
    • 这些详细信息将在登录过程中向用户显示

配置 OAuth2 设置

  1. 导航到左侧边栏的“OAuth2”选项卡

  1. 复制“Client ID”(客户端 ID)和“Client Secret”(客户端密钥)
    • 如果密钥未显示,请点击“Reset Secret”(重置密钥)以生成一个新的
  2. 添加您的重定向 URL:
    • 格式:https://your-discourse-site.com/auth/discord/callback
    • :warning: 不要包含尾部斜杠
  3. 点击“Save Changes”(保存更改)

在 Discourse 中启用 Discord 登录

  1. 在您的 Discourse 管理设置中,将客户端 ID 输入到 discord_client_id 设置项中
  2. 将客户端密钥输入到 discord_secret 设置项中
  3. 启用 enable_discord_logins 设置项

限制访问特定的 Discord 服务器

您可以将 Discord 登录限制为特定 Discord 服务器(guild)的成员。

查找您的服务器 ID

  1. 在浏览器中打开 Discord
  2. 导航到您服务器中的任何频道
  3. 查看 URL:https://discord.com/channels/{guild_id}/{channel_id}
  4. 从 URL 中复制第一个数字(guild_id)
    • 示例:在 https://discord.com/channels/123/456 中,服务器 ID 是 123

配置服务器限制

  1. 在您的 Discourse 管理设置中,找到 discord_trusted_guilds 设置项
  2. 添加您的服务器 ID
    • 如果需要,可以添加多个服务器 ID

启用服务器限制后:

  • 受信任服务器的成员将正常登录
  • 其他用户将看到一条错误消息
  • 您可以在 Customize → Text(自定义 → 文本)下自定义此消息,搜索 discord.not_in_allowed_guild

:warning: 如果您出于安全原因使用服务器限制,请禁用 Discourse 设置中的所有其他登录选项。

后续步骤

可以考虑设置 chat-integration 插件,以便将重要的 Discourse 主题推送到您的 Discord 频道。

34 个赞