AWS Cognito无法向英国手机号发送SMS验证码求助
英国手机号无法接收AWS Cognito SMS验证码的排查与解决步骤
检查AWS SNS的区域发送权限
登录AWS控制台进入SNS服务的「短信偏好设置」,确认英国(GB)已在允许发送的国家/地区列表中,同时确保账号未被列入短信发送黑名单。验证Cognito用户池的短信配置
- 进入用户池的「消息自定义」页面,确认短信模板符合英国监管要求(无违规内容,验证码清晰可辨)。
- 检查用户池关联的IAM角色,确保其拥有
SNS:Publish权限(最小权限原则),或已附加AmazonSNSFullAccess策略。 - 确认注册流程中已启用「发送验证码」的触发规则,未被意外禁用。
严格校验手机号格式
英国手机号必须使用国际标准格式:以+44开头,去掉本地号码首位的0(例如本地号07xxxxxxxxx需改为+447xxxxxxxxx)。Cognito对非国际格式的手机号无法正确路由短信。查看CloudWatch发送日志定位问题
进入CloudWatch控制台,搜索包含Cognito用户池ID或/aws/sns的日志组,查看短信发送状态:- 状态为
Success:短信已发出,需排查用户端问题(如短信拦截、运营商屏蔽)。 - 状态为
Failed:根据错误信息修复(如InvalidPhoneNumber对应格式错误,MessageRejected对应内容违规)。
- 状态为
确认账号付费状态与短信配额
- 检查AWS账号是否欠费,欠费会导致SMS服务暂停。
- 在SNS控制台的「短信配额」页面查看当月发送量,若超出免费额度或账号配额,需提交配额提升申请。
直接测试SNS短信发送功能
用SNS控制台手动给目标手机号发送测试短信:- 进入SNS>「短信」>「发布短信」。
- 输入正确国际格式的英国手机号和测试内容。
若测试短信无法接收,联系AWS支持排查运营商链路;若能接收,回到Cognito检查流程触发逻辑。
内容的提问来源于stack exchange,提问作者chai86
相关产品推荐
相关产品推荐

