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

AWS Cognito自定义Lambda编码验证码后值被掩码问题求助

问题原因及解决方案

核心原因

这是AWS Cognito的敏感属性自动掩码机制导致的:

  • Cognito会对预设的敏感属性(如verification_code、password等)或标记为「敏感」的自定义属性,在传递给触发Lambda时自动替换为{####},目的是防止敏感信息泄露。
  • 你本地运行正常是因为没有经过Cognito的属性过滤流程,直接操作原始值;但Lambda作为Cognito的触发函数,接收到的属性已经是被掩码后的内容,所以无论你用Base64、Base32还是URL编码,解码后自然是{####}。

解决方案

  • 更换属性命名:如果必须把验证码存在Cognito用户属性里,不要使用code、verification_code这类容易被判定为敏感的名称,改用temp_invite_code这类无歧义的命名,避免触发Cognito的掩码规则。
  • 绕过Cognito属性存储:生成验证码后直接用于邮件发送,不将其存入Cognito用户属性。如果后续需要验证验证码,将其存储到DynamoDB等独立存储服务,用用户ID作为关联键,完全避开Cognito的属性处理逻辑。
  • 检查自定义属性设置:如果使用了自定义属性,登录AWS控制台进入Cognito用户池,查看该属性是否被标记为「敏感」,若有则取消标记(但不建议将验证码这类敏感信息设为非敏感,优先推荐前两种方案)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:00:55