如何从Cognito获取编程错误代码?

时间:2017-05-13 20:46:12

标签: amazon-web-services aws-sdk amazon-cognito aws-cognito

我正在使用Cognito Javscript SDK,我创建了一个用户可以注册帐户的表单。如果由于某种原因,服务器端验证失败,响应如下所示:

{
  "__type":"InvalidParameterException",
  "message":"4 validation errors detected: Value at 'password' failed to satisfy constraint: Member must have length greater than or equal to 6; Value at 'password' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\S]+; Value at 'username' failed to satisfy constraint: Member must have length greater than or equal to 1; Value at 'username' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"
}

此响应的问题在于我无法提供良好的用户反馈,因为我必须解析响应以确定需要修复哪些字段。有没有办法以更好的方式以编程方式恢复错误?

3 个答案:

答案 0 :(得分:1)

目前执行此操作的最佳方法是以编程方式获取值,方法是在'之后删除子字符串。

我还没有一个可能有助于这样做的图书馆的例子,但这是很好的反馈。

答案 1 :(得分:0)

以防万一有人在这个年龄段绊倒,答案是使用response.code:

        this.cognitoUser.forgotPassword({
            onSuccess: (data) => {

            },
            onFailure: (data) => {
                console.log(data) 
                /*
                {
                   "__type":"InvalidParameterException",
                   "message":"4 validation errors etc"
                }
                */
                console.log(data.code)
                /*
                   "InvalidParameterException"
                */
            }
        })

答案 2 :(得分:0)

您必须首先json字符串化,然后json解析对象以获取值。

尝试使用以下示例代码-

var errorObj = JSON.parse(JSON.stringify(data));
console.log(errorObj.statusCode);