Javascript 想知道如何在通过Cognito用户池验证用户时修复一个相当奇怪的错误吗?

Javascript 想知道如何在通过Cognito用户池验证用户时修复一个相当奇怪的错误吗?,javascript,amazon-web-services,amazon-cognito,accounts,Javascript,Amazon Web Services,Amazon Cognito,Accounts,我在尝试验证我的用户时遇到了一个奇怪的问题。下面是我的代码 //-----Authenticate a user alert('Authenticate a user with application'); var authenticationData = { Username : 'someExistingUserName', Password : 'passwordForExistingUserName', }; var aut

我在尝试验证我的用户时遇到了一个奇怪的问题。下面是我的代码

//-----Authenticate a user
    alert('Authenticate a user with application');
    var authenticationData = {
        Username : 'someExistingUserName',
        Password : 'passwordForExistingUserName',
    };
    var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
    var poolData = { UserPoolId : 'us-east-1_r121212',
        ClientId : '3g7djfhsdfjkahfjdfhdb1'
    };
    var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
    var userData = {
        Username : 'someExistingUserName',
        Pool : userPool
    };
    var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
    alert('hisss2');
    cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: function (result) {
          alert('meow');
            console.log('access token + ' + result.getAccessToken().getJwtToken());
        },
        onFailure: function(err) {
            alert(err);
        },

    });
从某种意义上说,这似乎是可行的

如果我输入一个不存在的用户名/密码组合,我会得到以下看似正确的错误:

ResourceNotFoundException:未找到用户名/客户端id组合

然而,如果我输入了正确的用户名和密码组合,似乎什么也不会发生。没有出现错误弹出窗口(这是在我使用错误的用户名/密码组合时发生的),并且打算在身份验证成功时运行的console.log没有出现,我在onSuccess处理程序中放置的任何警报弹出窗口也没有出现

它既不触发成功也不触发失败,这看起来很奇怪。真奇怪。思想? 我非常确定我的设置在使用正确的UserPoolId、ClientId等方面是正确的。这看起来很奇怪。请帮忙,我不能给你任何回报

我还有一个想法,这里的用户名参数是:

var authenticationData = {
        Username : 'someExistingUserName',
        Password : 'passwordForExistingUserName',
    };
var userData = {
            Username : 'someExistingUserName',
            Pool : userPool
        };
要与此处的用户名参数匹配:

var authenticationData = {
        Username : 'someExistingUserName',
        Password : 'passwordForExistingUserName',
    };
var userData = {
            Username : 'someExistingUserName',
            Pool : userPool
        };
??
我的目前是这样,但也许他们是两个不同的用户名,我只使用一个或什么?WTF

我找到了答案。斯坦福JavaScript加密库不包括SDK使用的字节编解码器。我以为我做了这件事,但显然没有。我下载了一个已经有字节编解码器的,它工作得很好。该死


删除“us-east-1_r121212”中的“u”,然后尝试它会起作用删除整个“us-east-1_r121212”或只是“u”?只是“u”,它会起作用,但没有解决问题:(顺便说一下,“us-east-1_r121212”不是我的实际UserPoolId,我只是不想在这里发布真实的UserPoolId-但我几乎可以肯定,我正在使用正确的UserPoolId注册用户,我已经成功地完成了注册。如果没有任何错误,那么很难找到错误:)