AWS Cognito AdminGetUser返回未定义的对象

问题描述 投票:0回答:1

我正在尝试为网站管理员设置页内用户属性查看器,以便他们可以查看和设置不同的用户变量。当我向用户池发出请求时,没有返回用户对象或HTTP错误对象,而是出现以下错误:

TypeError: Cannot read property 'byteLength' of undefined
    at Object.isEmptyData (browserHashUtils.js?a069:41)
    at Hmac.update (browserHmac.js?f8e2:34)
    at Object.hmac (util.js?05a3:423)
    at Object.getSigningKey (v4_credentials.js?146b:62)
    at V4.signature (v4.js?2886:98)
    at V4.authorization (v4.js?2886:93)
    at V4.addAuthorization (v4.js?2886:35)
    at eval (event_listeners.js?b7ab:236)
    at finish (config.js?6e76:379)
    at eval (config.js?6e76:397) "TypeError: Cannot read property 'byteLength' of undefined
    at Object.isEmptyData (webpack-internal:///./node_modules/aws-sdk/lib/browserHashUtils.js:41:17)
    at Hmac.update (webpack-internal:///./node_modules/aws-sdk/lib/browserHmac.js:34:19)
    at Object.hmac (webpack-internal:///./node_modules/aws-sdk/lib/util.js:423:50)
    at Object.getSigningKey (webpack-internal:///./node_modules/aws-sdk/lib/signers/v4_credentials.js:62:8)
    at V4.signature (webpack-internal:///./node_modules/aws-sdk/lib/signers/v4.js:98:36)
    at V4.authorization (webpack-internal:///./node_modules/aws-sdk/lib/signers/v4.js:93:36)
    at V4.addAuthorization (webpack-internal:///./node_modules/aws-sdk/lib/signers/v4.js:35:12)
    at eval (webpack-internal:///./node_modules/aws-sdk/lib/event_listeners.js:236:18)
    at finish (webpack-internal:///./node_modules/aws-sdk/lib/config.js:379:7)
    at eval (webpack-internal:///./node_modules/aws-sdk/lib/config.js:397:9)"

现在显然它返回一个空对象。我想知道的是为什么它返回null而不是其他任何错误,例如“ UserNotFound”或找到的任何其他400错误here,而是一个空对象。我传递的内容似乎有问题,但是与插入AdminGetUser的参数无关,因为值是否有效都是相同的,但是缺少这些值将引发400错误。

我当前的代码如下:

import  AWS  from 'aws-sdk'
        AWS.config.region = 'us-west-2'; // Region
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
            IdentityPoolId: 'us-west-2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        });
        AWS.config.accessKeyId = "xxxxxxxxxxxxxxxxxx"
        AWS.config.secretAccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
        var params = {
          Username: 'xxxxxxxxx',
          UserPoolId: 'us-west-xxxxxxxx'
        }
        cognitoidentityserviceprovider.adminGetUser(params, function(err,data){
          if(err) console.log( err, err.stack);
          else    {
            console.log(data)
          };
        });

到目前为止,我有:

  • 更新了aws-sdk模块
  • 通过生成新的并复制并粘贴,确保访问密钥和秘密访问密钥有效”>
  • 确保的身份池ID,用户池ID和区域准确无误
  • 已尝试通过将有效用户名替换为无效用户名来尝试获得错误400:找不到用户的消息
  • 与上面相同,但具有有效的用户池ID,具有相同的效果
  • 在AWS CLI中将命令测试为aws cognito-idp --user-pool-id id iiusername validusername,并获得了正确的响应
  • 有人遇到过同样的事情,您是如何解决的?

我正在尝试为网站管理员设置页内用户属性查看器,以便他们可以查看和设置不同的用户变量。当我向用户池发出请求时,而不是返回用户对象...

javascript amazon-web-services http amazon-cognito
1个回答
1
投票

原因是我仅更新AWS.config,这意味着未定义AWS.config.credentials.accessKeyId和AWS.config.credentials.secretAccessKey。当Admin API尝试读取这些内容时,它就抛出了“未定义”状态,因为根本没有任何数据。通过在上述字段中添加与它们的AWS.config副本完全相同的值,我得到了数据。

© www.soinside.com 2019 - 2024. All rights reserved.