【问题标题】:How do I get programmatic error codes from Cognito?如何从 Cognito 获取程序错误代码?
【发布时间】:2017-10-12 23:02:51
【问题描述】:

我正在使用 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}]+"
}

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

【问题讨论】:

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


    【解决方案1】:

    目前最好的方法是通过删除“value at”之后的子字符串以编程方式获取值。

    我没有任何图书馆的例子可以帮助做到这一点,但这是很好的反馈。

    【讨论】:

    • 这很不幸。你知道是否有一个 github 问题来跟踪这个?如果没有,我会提交一份。
    • 我还没看过,但你一定要提交一份! AWS 工程师密切关注他们!我也会提交此反馈!
    • 谢谢!无法保证是否/何时实施,但可以确保团队知道这一点:)
    【解决方案2】:

    以防万一有人在以后遇到这个问题,答案是使用 response.code:

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

    【讨论】:

      【解决方案3】:

      你必须先 json stringify 然后 json 解析对象来获取值。

      尝试以下示例代码 -

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

      【讨论】:

        猜你喜欢
        • 2023-04-07
        • 2013-10-17
        • 2018-07-28
        • 2018-11-16
        • 2020-09-18
        • 2023-03-22
        • 1970-01-01
        • 2017-05-27
        • 2021-09-06
        相关资源
        最近更新 更多