在 Discourse 中配置 Google 登录 (Google login)

这篇文章展示了如何在 Discourse 中配置注册使用 Google OAuth2 来进行登录。

Google 控制台配置

进入 https://console.developers.google.com ,然后再左上方单击 选择一个项目(Select a project)

image

新项目

在顶部的右侧,单击 新项目(New Project)

输入项目信息

项目名称(Project Name) 字段中输入项目的名称,你也可以对 **项目 ID(Project ID)**来进行编辑。

对项目编辑 ID 的编辑是可选的,随后单击 创建(Create)

这个操作可能需要耗费一些时间,因此你可能需要耐心的等候一下。

创建错误

在创建的过程中,可能会出现创建错误。
针对这种情况,你可以选择忽略掉创建的错误,然后单击 Ctrl+F5 来进行刷新。

提交校验

请按照 https://support.google.com/cloud/answer/9110914#submit-app-ver 链接中的说明,将你的项目提交给 Google Cloud Platform 平台进行校验。

创建外部链接

在你的项目中,选择当前项目的名字,然后在左侧控制面板中单击 OAuth consent screen 菜单,然后选择 External ,随后宕机 Create按钮

填写所有数据

我们建议你完全填写完成所有的数据后再单击 Save 按钮进行保存。

在示例中,我们假设我们的域名为 https://demo.site.com,请确定你输入的 URL 中有 https 或者 http 的协议开头。

:information_source: 从 2021/09/13 (September 13) 开始, Google 将会要求所有访问 Google 服务的网站都需要使用 https。

针对 Application logo 不需要进行修改,当然你也可以上传你自己的 logo,随后 Google 将会对站点进行校验。

Credentials

随后需要创建 Credentials,进入左侧的 Credentials 标签页,然后单击 + CREATE CREDENTIALS 按钮,随后选择 OAuth client ID 来进行创建

选择类型

在随后的界面中,选择 Application Type 的授权类型为Web application

Authorized JavaScript Origins 界面中,添加你的网站 URL,需要注意的是这个网站的 URL 需要以 http:// 或者 https:// 开头。

Authorized Redirect URI 部分,需要在你前面输入的 URL 后面添加 /auth/google_oauth2/callback

然后单击 Create 按钮来进行创建。

:information_source: 需要注意的是,从 2021/09/13 (September 13) 开始, Google 将会要求所有访问 Google 服务的网站都需要使用 https。因此你的 Discourse 网站需要尽量使用 https。

获得秘钥对

在 OAuth 客户端对话框中将会显示 client ID 和 secret。

image

查看秘钥对(可选)

这一步的操作是可选的,现在从你的项目中,单击 Credentials 选项,你便可以找到 OAuth 秘钥来进行编辑或者删除。

Discourse 配置

在你的 Discourse 配置中,单击 enable google oauth2 logins,然后输入你在上面的步骤中获得的 google oauth2 client idgoogle auth2 client secret

并且将上面的秘钥对输入到正确的配置对话框中。

至此,针对 Google 的登录配置应该配置完成了。

你可以通过 Discourse 的前端来来进行测试。

Tips

针对启用 Gsuite 登录的配置,请使用配置参数 google oauth2 hd。有关更多的内容,请访问这里

ID token 将会被 Discourse 进行校验,上面的链接就是 Discourse 进行校验的源代码。

请参考原文 在 Discourse 中配置 Google 登录 (Google login) - Discourse - OSSEZ 了解更多内容。

感谢官方的支持。