求助:Cognito入站联合Lambda触发器为何忽略userAttributesToMap自定义字段?
解决Cognito入站联合Lambda触发器自定义属性不生效及登录失败问题
- 先确认用户池已创建对应自定义属性:必须以
custom:为前缀(比如custom:user_role),并且在属性设置里勾选可写,如果需要在身份令牌中返回还要勾选在联合身份验证中返回。 - 检查Lambda返回的
response.userAttributesToMap键名:必须和用户池中的属性名完全一致,包括前缀和大小写,Cognito对属性名是大小写敏感的,写错就会导致字段不被识别。 - 不能只返回自定义属性+email:Cognito登录流程依赖默认核心属性(比如
sub、username、email_verified等),必须把这些原有属性保留在userAttributesToMap里,再添加自定义字段。你可以先获取触发器传入的request.userAttributes里的所有属性,再在这个基础上添加或修改自定义字段,不要直接替换成仅3个属性。 - 查看CloudWatch日志排查:在Lambda的监控页面打开CloudWatch日志,检查返回的
response结构是否符合要求,有没有语法错误或者字段遗漏。 - 验证触发器配置:确认用户池的入站联合触发器已经正确关联到你的Lambda函数,并且触发器的触发条件设置正确。
内容的提问来源于stack exchange,提问作者lopass
相关产品推荐
相关产品推荐

