gpt4 book ai didi

javascript - AWS Cognito AdminGetUser 返回 undefined object

转载 作者:行者123 更新时间:2023-12-05 02:55:23 25 4
gpt4 key购买 nike

我正在尝试为站点管理员设置页内用户属性查看器,以便他们可以查看和设置不同的用户变量。当我向我的用户池发出请求时,我没有返回用户对象或 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 模块
  • 通过生成新 key 和复制粘贴来确保访问 key 和 secret 访问 key 有效
  • 确保身份池 ID、用户池 ID 和区域准确无误
  • 通过用有效用户名替换无效用户名来尝试获取错误 400:未找到用户以达到相同的效果进行了测试
  • 使用无效/有效的用户池 ID 与上面的操作相同以达到相同的效果
  • 在 AWS CLI 中测试命令为 aws cognito-idp --user-pool-id id iiusername validusername 并得到正确的响应

有没有人遇到过同样的事情,你是如何解决的?

最佳答案

原因是我只更新了 AWS.config,这意味着 AWS.config.credentials.accessKeyId 和 AWS.config.credentials.secretAccessKey 是未定义的。当 Admin API 尝试读取这些时,它会抛出“未定义”,因为根本没有任何数据。通过将与 AWS.config 对应项完全相同的值添加到上述字段,我得到了我的数据。

async adminGetUser(_, {username}){
AWS.config.region = 'us-west-2'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-west-2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
});
AWS.config.accessKeyId = "xxxxxxxxxxxxxxxxxxx"
AWS.config.secretAccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
AWS.config.credentials.accessKeyId = "xxxxxxxxxxxxxxxxxx"
AWS.config.credentials.secretAccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
AWS.config.apiVersion = 'latest'
AWS.config.maxRetries = 100
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
var params = {
Username: username,
UserPoolId: 'us-west-xxxxxxxxx'
}
cognitoidentityserviceprovider.adminGetUser(params, function(err,data){
if(err) console.log( err, err.stack);
else {
console.log(data)
return data
};
});

},

调用它的函数:

let params = {
username: this.USERNAME
}
console.log("getting user")
let user = await this.$store.dispatch('adminGetUser', params);
console.log(user)

并输出:

getting user

undefined

{userdata}

关于javascript - AWS Cognito AdminGetUser 返回 undefined object ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61299387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com