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

AWS SDK Node.js Cognito自定义挑战报错:缺少必填参数ANSWER

问题分析与解决方案

问题核心是调用RespondToAuthChallenge接口时,ChallengeResponses中缺少必填的ANSWER参数。

Cognito的CUSTOM CHALLENGE流程里,当你通过InitiateAuth成功触发短信发送后,下一步调用RespondToAuthChallenge必须携带用户输入的短信验证码作为ANSWER,以此完成挑战验证。你之前的请求仅传入了USERNAME,没有提供这个关键参数,导致报错。

修改后的请求代码如下:

// userInputCode 为用户收到并输入的短信验证码
const input: Cognito.RespondToAuthChallengeCommandInput = {
    ClientId: process.env['Cognito_clientId'],
    ChallengeName: ChallengeNameType.CUSTOM_CHALLENGE,
    ChallengeResponses: {
        USERNAME: phoneNo,
        ANSWER: userInputCode // 新增:传入用户输入的验证码
    },
    Session: body.session
};

补充说明:

  • ANSWER参数的值就是用户收到的短信验证码,需要从前端获取用户输入后传入该接口。
  • 这个参数是Cognito CUSTOM CHALLENGE流程中RespondToAuthChallenge的必填项,用于验证用户是否通过了自定义挑战。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:55:27