提问者:小点点

无法验证Amazon Cognito用户池中客户端的秘密哈希


我被困在“Amazon Cognito Identity用户池”流程中。

我尝试了所有可能的代码来验证用户在认知用户池中的身份。但是我总是得到错误说“错误:无法验证客户端4b*******fd的秘密哈希”。

这是代码:

AWS.config.region = 'us-east-1'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'us-east-1:b64bb629-ec73-4569-91eb-0d950f854f4f'
});

AWSCognito.config.region = 'us-east-1';
AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'us-east-1:b6b629-er73-9969-91eb-0dfffff445d'
});

AWSCognito.config.update({accessKeyId: 'AKIAJNYLRONAKTKBXGMWA', secretAccessKey: 'PITHVAS5/UBADLU/dHITesd7ilsBCm'})

var poolData = { 
    UserPoolId : 'us-east-1_l2arPB10',
    ClientId : '4bmsrr65ah3oas5d4sd54st11k'
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);

var userData = {
     Username : 'ronakpatel@gmail.com',
     Pool : userPool
};

var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);

cognitoUser.confirmRegistration('123456', true,function(err, result) {
if (err) {
    alert(err);
    return;
}
console.log('call result: ' + result);
});

共3个答案

匿名用户

目前AWSCognito似乎不能完美地处理客户端机密。它将在不久的将来工作,但目前它仍然是一个beta版本。

对我来说,它适用于没有客户端机密的应用程序,但适用于具有客户端机密的应用程序。

因此,在您的用户池中尝试创建一个新应用程序而不生成客户端机密。然后使用该应用程序注册新用户或确认注册。

匿名用户

根据文档:http://docs.aws.amazon.com/cognito/latest/developerguide/setting-up-the-javascript-sdk.html

JavascriptSDK不支持带有客户端机密的应用程序。

说明现在指出,您需要在为用户池创建应用程序时取消选中“生成客户端密钥”。

匿名用户

这可能晚了几年,但只需取消选中“生成客户端机密”选项,它就可以为您的Web客户端工作。