如何将AWS Cognito谷歌登录页的amazoncognito.com改为自定义域名?
解决方案:修复AWS Cognito谷歌联合登录的品牌域名显示问题
问题核心是谷歌登录页显示的域名,由OAuth授权请求中redirect_uri对应的域名决定。默认情况下Cognito使用自身域名,需通过以下步骤切换为自定义域名:
1. 确认Cognito自定义域名配置生效
- 进入用户池「应用集成」→「域名」,确保已设置自定义域名(如
auth.myapp.com),且DNS的CNAME记录已指向Cognito提供的目标域名(格式为<cognito-domain>.auth.<region>.amazoncognito.com)。 - 验证自定义域名可正常访问(浏览器打开
https://auth.myapp.com应显示Cognito托管UI页面)。
2. 更新Cognito应用客户端的回调/退出URL
- 进入用户池「应用集成」→「应用客户端」,编辑目标应用客户端:
- 将「回调URL」替换为自定义域名地址:
https://auth.myapp.com/oauth2/idpresponse - 将「退出URL」替换为自定义域名地址:
https://auth.myapp.com/logout
- 将「回调URL」替换为自定义域名地址:
- 保存修改。
3. 同步谷歌开发者控制台的授权重定向URI
- 登录谷歌开发者控制台,找到对应OAuth 2.0客户端ID:
- 在「已授权的重定向URI」中添加自定义域名的回调地址:
https://auth.myapp.com/oauth2/idpresponse - 可保留原Cognito域名的重定向URI(兼容旧请求),但新登录流程会使用自定义地址。
- 在「已授权的重定向URI」中添加自定义域名的回调地址:
4. 确认Cognito谷歌身份提供商配置
- 进入用户池「身份提供商」→「Google」:
- 检查「授权范围」包含
openid、email、profile(必填项) - 无需手动修改回调地址,Cognito会自动关联已配置的自定义域名。
- 检查「授权范围」包含
5. 测试登录流程
- 发起登录请求时,使用自定义域名的授权端点,示例:
https://auth.myapp.com/oauth2/authorize?response_type=code&client_id=<你的客户端ID>&redirect_uri=https://auth.myapp.com/oauth2/idpresponse&scope=openid email profile - 此时谷歌登录页将显示「选择账户以继续访问myapp.com」(谷歌会提取自定义域名的主域作为显示内容)。
常见注意事项
- 自定义域名必须使用HTTPS,谷歌不接受HTTP协议的重定向地址。
- DNS解析生效可能需要5-10分钟,配置后需等待生效再测试。
- 若使用Amplify,需在
amplifyconfiguration.json中更新Auth模块的domain字段为自定义域名。
内容的提问来源于stack exchange,提问作者sonny
相关产品推荐
相关产品推荐

