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

如何将手机号与关联Google的Cognito用户池映射?解决登录报错问题

解决Google登录Cognito因必填phone属性报错的问题

这个问题我之前做Cognito集成时也踩过坑,核心矛盾就是你提到的:Google Sign-In的权限范围里压根没有phone相关权限,没办法返回用户手机号,而你的Cognito用户池又把phone_number设成了必填属性,属性映射环节自然会直接报错。

下面给你几个可行的解决思路,你可以根据业务需求选择:

思路1:调整Cognito必填属性规则

如果手机号不是注册阶段必须强制获取的,可以先把phone_number从必填属性改为可选:

  • 登录AWS控制台进入目标Cognito用户池
  • 切换到「属性」选项卡,在「标准属性」里把phone_number的「是否必填」改为否
  • 这样Google登录的用户就能正常创建账号了,后续可以在你的应用内引导用户补充手机号信息

思路2:用Cognito Lambda触发强制补充手机号

如果业务上必须要求用户提供手机号,可以通过Cognito的触发器流程实现:

  1. 编写一个Lambda函数,逻辑是检查用户属性中是否存在phone_number,如果不存在就跳转到你的自定义页面,引导用户输入手机号
  2. 在Cognito用户池的「触发器」选项卡中,配置Post Authentication或Post Confirmation触发器,关联这个Lambda函数
  3. 当Google用户完成首次登录后,会被自动引导到补充手机号的页面,完成后再更新Cognito用户属性

思路3:在应用前端处理属性补充

绕开Cognito的强制校验,在应用层面处理:

  • 用户通过Google登录成功后,前端直接检查返回的用户信息(肯定没有手机号)
  • 弹出自定义表单让用户输入手机号
  • 调用Cognito的UpdateUserAttributes API,将手机号更新到用户属性中

需要注意的是,无论选哪种方案,都要确保后续业务逻辑能兼容用户暂时没有手机号的场景,避免流程卡壳。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:06:12