这篇文章展示了如何在 Discourse 中配置注册使用 Google OAuth2 来进行登录。
Google 控制台配置
进入 https://console.developers.google.com ,然后再左上方单击 选择一个项目(Select a project)。
新项目
在顶部的右侧,单击 新项目(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
的协议开头。
从 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 按钮来进行创建。
需要注意的是,从 2021/09/13 (September 13) 开始, Google 将会要求所有访问 Google 服务的网站都需要使用 https。因此你的 Discourse 网站需要尽量使用 https。
获得秘钥对
在 OAuth 客户端对话框中将会显示 client ID 和 secret。
查看秘钥对(可选)
这一步的操作是可选的,现在从你的项目中,单击 Credentials 选项,你便可以找到 OAuth 秘钥来进行编辑或者删除。
Discourse 配置
在你的 Discourse 配置中,单击 enable google oauth2 logins
,然后输入你在上面的步骤中获得的 google oauth2 client id
和 google auth2 client secret
。
并且将上面的秘钥对输入到正确的配置对话框中。
至此,针对 Google 的登录配置应该配置完成了。
你可以通过 Discourse 的前端来来进行测试。
Tips
针对启用 Gsuite 登录的配置,请使用配置参数 google oauth2 hd
。有关更多的内容,请访问这里。
ID token 将会被 Discourse 进行校验,上面的链接就是 Discourse 进行校验的源代码。