如何自定义AWS Cognito触发器Lambda返回的error查询参数?
结论
你无法自定义AWS Cognito PreSignUp触发器返回的error查询参数值。
规则说明
AWS Cognito对所有触发器抛出的错误统一做了固定返回规则:只要你在Lambda回调函数的第一个参数传入错误对象,Cognito服务端会硬编码返回error=invalid_request,该值目前没有开放配置入口,不支持用户自定义修改。
可行替代方案
- 前端忽略
error参数的固定值,直接解析error_description里的自定义错误内容做业务逻辑判断,比如你可以将自定义错误码拼接在错误描述的固定位置,前端匹配对应值后输出提示或跳转。 - 不直接通过
callback抛出错误终止注册流程,先放行PreSignUp触发,将自定义错误标识写入Cognito用户自定义属性中,后续在前端跳转回业务侧后,先拉取用户属性判断是否存在错误标识,再自行构造符合预期的错误提示或跳转逻辑。 - 将PreSignUp阶段的校验逻辑前置到你自己的业务服务层:用户先调用你的业务接口完成预设校验,校验不通过时直接返回你想要的错误码,校验通过后再发起Cognito注册流程。
内容的提问来源于stack exchange,提问作者lipeiran
相关产品推荐
相关产品推荐

