You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过联邦到Google的Cognito用户池获取手机号、性别与生日

解决Cognito集成Google身份提供商无法获取敏感属性的问题

核心错误分析

错误提示error=invalid_request且要求gender, birthdate, phone_number属性,说明Cognito认定这些属性为必填项,但Google未返回对应数据,或配置存在疏漏。

分步解决方案

1. 调整Cognito用户池属性的必填设置

  • 进入Cognito控制台,打开目标用户池
  • 切换到属性标签页,查看标准属性中的gender、birthdate、phone_number
    • 如果这些属性并非业务强制要求,将其从必填改为可选
    • 若必须保留必填,需确保Google能稳定返回这些属性(后续步骤验证)

2. 验证Google Cloud OAuth同意屏幕的范围配置

  • 登录Google Cloud Console,打开对应项目
  • 进入API和服务 → OAuth同意屏幕,点击编辑
  • 在范围部分,确认已添加并保存以下权限:
    • https://www.googleapis.com/auth/user.phonenumbers.read
    • https://www.googleapis.com/auth/user.gender.read
    • https://www.googleapis.com/auth/user.birthday.read
  • 注意:如果是外部用户(非组织内账号),测试阶段可使用测试用户列表添加测试账号,避免审核延迟;正式上线需提交范围审核。

3. 核对Cognito与Google的属性映射

  • 回到Cognito用户池,进入身份提供商 → Google → 属性映射
  • 确保映射关系正确:
    • Cognito gender → Google gender
    • Cognito birthdate → Google birthday
    • Cognito phone_number → Google phone_number
  • 注意:Google仅返回用户已验证且填写的手机号,若用户Google账号未绑定验证手机号,该字段会为空。

4. 重置第三方应用权限并重新授权

  • 登录测试用Google账号,进入安全 → 第三方应用访问权限
  • 找到你的Cognito集成应用,点击撤销访问权限
  • 重新触发continue with google流程,确认授权弹窗中是否包含请求性别、生日、手机号权限的提示
    • 若未弹出提示,说明Google范围配置未生效,需重新检查步骤2的设置

5. 确认测试Google账号的属性完整性

  • 确保测试用Google账号已填写性别、生日信息,并完成手机号验证
  • 可登录Google账号个人资料页,检查对应字段是否存在有效数据

内容的提问来源于stack exchange,提问作者Test

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:42:24