配置 Discourse 的 Google 登录

:bookmark: 本指南说明如何通过在 Google Cloud Console 中配置 OAuth2 凭据,为您的 Discourse 站点设置 Google 登录集成。

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

概述

Google 登录允许用户使用其 Google 帐户登录您的 Discourse 站点。本指南将引导您完成以下步骤:

  1. 创建一个 Google Cloud 项目
  2. 设置 OAuth 同意屏幕
  3. 配置凭据
  4. 在 Discourse 中启用 Google 登录

创建 Google Cloud 项目

  1. 导航至 https://console.developers.google.com
  2. 点击左上角的项目选择按钮
  3. 点击“新建项目”

  1. 输入项目名称和可选位置。
  2. 点击“创建”

:information_source: 如果在创建项目后看到任何错误,请使用 Ctrl+F5 刷新页面。

配置 OAuth 同意屏幕

  1. 导航回 https://console.developers.google.com,如果尚未选择,请选择您的新项目。
  2. 在左侧面板中导航到“OAuth 同意屏幕”。您也可以使用左上角的 Google Cloud 菜单选择“API 和服务”->“OAuth 同意屏幕”。

  1. 点击“开始使用”
  2. 在“应用信息”下,输入应用名称并选择一个用户支持电子邮件地址

  1. 选择“面向外部”受众群体

  1. 接下来,输入通知电子邮件地址
  2. 最后,接受 API 服务:用户数据政策并点击“创建”

设置凭据

  1. 导航到“API 和服务”->“凭据”屏幕
  2. 点击“创建凭据”并选择“OAuth 客户端 ID”

  1. 配置 OAuth 客户端:
  • 将“应用类型”选择为“Web 应用程序”并为其命名
  • 在“授权的 JavaScript 源”中,添加您站点的基本网址(包括 https://
  • 在“授权的重定向 URI”下,添加您的回调网址:https://your-discourse-site.com/auth/google_oauth2/callback
  • 点击“创建”

点击 OAuth 2.0 客户端 ID:

将 ClientID 和 Client Secret 复制到您的 Discourse 管理员设置中:

配置 Discourse 设置

  1. 在您的 Discourse 管理员设置中,“登录与身份验证”下
  • 启用 enable google oauth2 logins(启用 Google OAuth2 登录)设置
  • 输入您的 google oauth2 client id(Google OAuth2 客户端 ID)
  • 输入您的 google oauth2 client secret(Google OAuth2 客户端密钥)

验证和发布

通过添加一个具有 Google 电子邮件地址的用户并确认您可以使用“使用 Google 登录”选项登录 Discourse 来测试集成。如果您能够登录,则配置完成!:tada:

:warning: 注意:

以前需要最后一步——将 Google 开发者项目更改为“生产”状态。这似乎不再需要。我们在此保留这些遗留说明,以防万一。

要使集成可公开访问:

  • 将状态更改为“生产”
  • 完成 Google 的验证过程
  • 通过 Google Search Console 验证网站所有权

附加配置

Google OAuth2 提示

google oauth2 prompt(Google OAuth2 提示)设置控制登录期间 Google 同意屏幕的行为。可用选项:

  • (空白) — 默认 Google 行为
  • none — 不显示同意或帐户选择屏幕
  • consent — 始终显示同意屏幕
  • select_account — 始终提示用户选择一个帐户

Google Workspace(以前的 G. Suite、Google Apps)登录

要将登录限制为特定的 Google Workspace 域名:

  1. Discourse 管理员 -> 登录与身份验证中,找到 google oauth2 hd 站点设置
  2. 输入您的 Google Workspace 域名

Google Workspace 组同步

您可以自动将 Google Workspace 组与 Discourse 同步。这需要:

  1. 启用 google oauth2 hd groups 设置
  2. google oauth2 hd 设置为您的工作区域名
  3. google oauth2 hd groups service account admin email(Google OAuth2 组服务帐户管理员电子邮件)中输入工作区管理员电子邮件
  4. 将您的 Google 服务帐户 JSON 凭据粘贴到 google oauth2 hd groups service account json

服务帐户必须启用域级委托,并被授予 https://www.googleapis.com/auth/admin.directory.group.readonly 范围。请参阅Google 关于域级委托的文档以获取设置说明。

故障排除

如果您遇到登录问题:

  • 验证 HTTPS 是否正确配置
  • 仔细检查所有重定向 URI
  • 确保您站点的 SSL 证书有效
  • 确认所有必需的 Google Cloud API 已启用
  • 启用 google oauth2 verbose logging(Google OAuth2 详细日志记录)以获取详细的 OAuth2 请求/响应日志

相关资源

165 个赞