React-TypeScript中使用AWS Amplify时,Auth.forgotPasswordSubmit()为何返回错误?
问题:密码修改成功但抛出InvalidLambdaResponseException错误
在React-TypeScript项目中调用AWS Amplify的Auth.forgotPasswordSubmit接口重置密码,代码如下:
await Auth.forgotPasswordSubmit( data.username as string, data.code as string, data.password as string );
密码已成功更新,但系统仍抛出错误:
InvalidLambdaResponseException: Invalid lambda function output : Invalid JSON
at http://127.0.0.1:5173/node_modules/.vite/deps/aws-amplify.js?v=05cc6dda:50694:19
排查与解决步骤
- 检查Cognito关联的Lambda触发器:错误根源是Cognito调用的Lambda函数返回了非法JSON响应,重点排查和密码重置流程相关的触发器(如
Post Authentication、Post Confirmation、Pre Token Generation)对应的Lambda函数。 - 验证Lambda返回格式:确保Lambda返回严格符合Cognito要求的JSON结构,示例如下:
注意:不能返回exports.handler = async (event) => { // 业务处理逻辑 return { ...event, response: { // 按需添加响应字段,无额外内容可保留空对象 } }; };null、未序列化的对象,也不能存在JSON语法错误(如多余逗号、引号不闭合)。 - 查看Lambda执行日志:在AWS控制台进入对应Lambda函数的CloudWatch日志,检查是否有执行报错、输出异常,比如
console.log的内容破坏了JSON结构,或函数抛出未捕获错误导致返回格式异常。 - 确认触发器配置:检查Cognito用户池的触发器设置,确保关联的Lambda函数状态正常,未配置错误的版本或别名。
内容的提问来源于stack exchange,提问作者Swapnil Patil
相关产品推荐
相关产品推荐

