本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Google 添加为社交身份提供商
注意
上次通过提供商控制台进行验证的时间为 2026 年 10 月 2 日。Google 控制台步骤遵循谷歌身份验证平台(品牌推广、受众、数据访问和客户部分)。如果 Google 控制台与这些步骤不同,请查阅 Google 身份验证平台文档
要让您的用户使用 Google 登录,您需要在 Google 身份验证平台中注册一个 OAuth 客户端,然后将 Google 作为身份提供商 (IdP) 添加到您的用户池中。必须先启用托管登录。
在谷歌身份验证平台上注册 OAuth 客户端
注册谷歌 OAuth 客户端
-
登录 Google Cloud 控制台
并创建或选择一个项目。 -
打开菜单,然后打开 Google 身份验证平台。如果您是第一次,请在 “概览” 页面上选择 “入门”,并提供您的应用程序名称、用户支持电子邮件、受众类型(外部)和联系信息。
-
选择 “品牌推广”。在 “授权域名” 下,添加用户池中的可注册域名,而不是完整的 URL:
-
amazoncognito.com,用于默认 Amazon Cognito 域名。 -
例如
example.com,您的自定义域名的根目录(如果您使用自定义域名)。
-
-
选择数据访问权限,然后选择添加或移除范围。添加
openid、.../auth/userinfo.email和.../auth/userinfo.profile。 -
选择客户端,然后选择创建客户端。对于应用程序类型,选择 Web 应用程序。
-
在 “授权 JavaScript 来源” 下,输入您的用户池域,不带路径:
-
默认 Amazon Cognito 域名:
https://<your-prefix>.auth.<region>.amazoncognito.com -
自定义域:
https://auth.example.com
-
-
在授权的重定向 URI 下,输入您的用户池域的
/oauth2/idpresponse终端节点:-
默认 Amazon Cognito 域名:
https://<your-prefix>.auth.<region>.amazoncognito.com/oauth2/idpresponse -
自定义域:
https://auth.example.com/oauth2/idpresponse
-
-
选择创建。安全存储 Google 显示的客户端 ID 和客户机密钥。当你将 Google 添加到用户池时,你需要输入这些值。
注意
对于 2025 年 6 月之后创建的客户端,Google 只会显示一次客户机密信息。立即存放。
将 Google 添加到您的用户池
要将谷歌添加为 IdP,请在 Amazon Web Services 管理控制台
-
在 Amazon Cognito 控制台
中,选择您的用户池,然后选择社交和外部提供商,然后选择添加身份提供商。 -
选择 Google。输入来自 Google 身份验证平台的客户端 ID 和客户端密钥。
-
对于授权范围,请输入
profile email openid,并用空格分隔。 -
将您想要的 Google 属性映射到您的用户池属性。至少,映射
email到email和映射email_verified到email_verified。如果您不进行映射email_verified,Amazon Cognito 会将该电子邮件视为未验证。 -
选择添加身份提供商,然后在您的应用程序客户端上启用 Google。
测试谷歌登录
打开您的托管登录页面并选择继续使用 Google,或者直接打开授权端点:
https://<your-prefix>.auth.<region>.amazoncognito.com/oauth2/authorize?response_type=code&client_id=<app-client-id>&redirect_uri=<your-app-callback>&identity_provider=Google
检查点
浏览器会完成 Google 帐号选择器,并使用授权码返回/oauth2/idpresponse到您的应用程序。在用户管理中,会出现一个新的联合身份用户,其中包含已填充的 Google 提供商email,并email_verified设置为true。你应该不会看到任何redirect_uri_mismatch错误。
Google-specific 陷阱
- 未经验证的同意屏幕用户上限
-
处于测试发布状态的应用程序仅限于您列出的测试用户。显示未验证应用程序屏幕的应用程序在项目生命周期内最多只能有 100 个新用户,并且上限无法重置。但是,如果您的应用仅请求基本登录范围(
openid、email、profile),则无需列出测试用户,也不会看到任何警告,他们的授权也不会过期。请遵守这些范围以避免上限,或者在验证中心验证您的应用程序。 - Redirect-URI 传播
-
对授权来源和重定向 URI 的更改可能需要五分钟到几小时才能生效。不匹配返回
redirect_uri_mismatch;未注册的来源返回。origin_mismatch - email_verified 和账户关联
-
谷歌
email_verified=true对Gmail和谷歌工作空间账户持有主张。Amazon Cognito 不会自动将谷歌用户与拥有相同电子邮件地址的现有用户合并。要关联它们,请实现链接(例如,使用注册前 Lambda 触发器AdminLinkProviderForUser和),并且仅在可信值上进行链接。email_verified