为Discourse配置Google登录

:bookmark: This guide explains how to set up Google login integration for your Discourse site by configuring OAuth2 credentials in the Google Cloud Console.

:person_raising_hand: Required user level: Administrator

Overview

Google login allows users to sign in to your Discourse site using their Google accounts. This guide will walk you through:

  1. Creating a Google Cloud project
  2. Setting up OAuth consent
  3. Configuring credentials
  4. Enabling Google login in Discourse

Create a Google Cloud project

  1. Navigate to https://console.developers.google.com
  2. Click the project selection button in the top left
  3. Click “New Project”

  1. Enter a project name and optional location.
  2. Click “Create”

:information_source: If you see any errors after creating the project, refresh the page using Ctrl+F5.

Configure OAuth consent

  1. Navigate back to https://console.developers.google.com and select your new project if it is not already slected.
  2. Navigate to “OAuth consent screen” in the left panel. You can also use the top left Google Cloud menu to select “APIs & Services” → “Oauth consent screen”.

  1. Click “Get Started”
  2. Under “App Information” enter an app name and select a user-support email address.

  1. Select “External” Audience

  1. Next, enter a notifications email address
  2. Finally, accept the API Services: User Data Policy and click “Create”

Set up credentials

  1. Navigate to the "APIs & Services“ → "Credentials” screen
  2. Click “Create Credentials” and select “OAuth Client ID”

  1. Configure the OAuth client:
  • Select “Web application” as the Application Type and give it a Name
  • In Authorized JavaScript Origins, add your site’s base URL (including https://)
  • Add your callback URL under Authorized Redirect URIs: https://your-discourse-site.com/auth/google_oauth2/callback
  • Click “Create”

Click on the OAuth 2.0 Client ID:

Copy the ClientID and Client Secret to add to your Discourse admin:

Configure Discourse settings

  1. In your Discourse admin settings under “Login & authentication”
  • Enable the setting enable google oauth2 logins
  • Enter your google oauth2 client id
  • Enter your google oauth2 client secret

Verify and publish

Test the integration by adding a user with a Google email address and confirming you can log in to Discourse using the “Log in with Google” option. If you are able to log in then the configuration is complete! :tada:

:warning: NOTE:

Previously there was one final step required - changing the Google Developer Project to production status. This no longer appears to be required. We are leaving these legacy notes here just in case.

To make the integration publicly available:

  • Change the status to “In production”-
  • Complete Google’s verification process
  • Verify site ownership through Google Search Console

Additional configuration

Google Workspace (formally G. Suite, Google Apps) login

To restrict login to specific Google Workspace domains:

  1. In Discourse Admin -> Login & authentication, locate the google oauth2 hd site setting
  2. Enter your Google Workspace domain

Troubleshooting

If you experience login issues:

  • Verify that HTTPS is properly configured
  • Double-check all redirect URIs
  • Ensure your site’s SSL certificate is valid
  • Confirm that all required Google Cloud APIs are enabled

Related resources

Last edited by @Southpaw 2025-03-11T02:06:51Z

Check documentPerform check on document:
165 个赞

很遗憾,如果我遵循这些说明,登录将无法正常工作。

为了让登录生效,我必须同时添加两种 URL 格式用于重定向。

https://forum.example.com//auth/google_oauth2/callback http:///forum.example.comauth/google_oauth2/callback

但是,我现在无法提交应用程序以供发布,因为 Google 只要求 HTTPS 格式的地址。

有什么解决办法吗?

我猜你没有标准安装,需要开启 force_https

我遵循了官方安装说明。强制 HTTPS 已启用。

编辑:很奇怪,但现在它开始工作了!我之前尝试了至少十次,但都没有成功。

我无法解释,因为过程完全相同。也许是谷歌方面的原因?

:person_shrugging: 它通过 http 访问 Google 是没有意义的。

帖子已拆分为新主题:Google 登录回归,可能是在最近的更改之后

你好,谢谢,我今天设置了该程序,它运行正常。我用我拥有的另一个 Google 帐户进行了测试。但是,我有一个小问题,我尝试从我的 PC 使用此其他 Google 帐户注册,并且只收到了访问密钥选项。我必须激活蓝牙才能与我的手机通信。嗯,这一切根本不起作用。我真正想做的是单击“使用 Google 登录”按钮,然后通过简单地填写表单来完成该过程,而无需使用访问密钥。我在我的 PC 上,不一定有访问密钥,也没有指纹。如果我想使用此过程,在不在手机上时使用 Google 注册,该怎么办?谢谢。