当前位置: 首页 > 知识库问答 >
问题:

AWS Cognito无法验证:空白答案-JS SDK

秦城
2023-03-14

所以我使用了AWS JS SDK的官方repo上的这段代码。它用于对用户进行身份验证。

它返回的是一个空白响应。

AWSCognito.config.region = 'us-east-1';
var authenticationData = {
    Username : '+1112223333', //some phone number used as an Alias
    Password : 'password123456',
};
var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
var poolData = {
    UserPoolId : 'us-east-1_P00l1d', // Your user pool id here
    ClientId : 'xxx' // Your client id here
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
    Username : 'myusername',
    Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
    onSuccess: function (result) {
        console.log('access token + ' + result.getAccessToken().getJwtToken());
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
            IdentityPoolId : 'xxx', // your identity pool id here
            Logins : {
                // Change the key below according to the specific region your user pool is in.
                'cognito-idp.pool_id_number_here_xxx' : result.getIdToken().getJwtToken()
            }
        });
    },

    onFailure: function(err) {
        alert(err)
        console.log("Error " + err);
    },

});

因此,对于authenticationData,我使用电话号码作为用户名(电话号码设置为别名)和密码。我也直接尝试了用户名。UserPoolId和ClientId是正确的,因为我在注册和确认电话号码时使用了相同的值。在userData中,我使用正确的myusername设置用户名。

关于身份池,我在AWS控制台上创建了一个身份池,链接到我的应用程序和我的用户池,我替换了身份验证用户中的标识符池和登录值。不过,我不完全确定登录的价值。我用了认知IDP泳池号。

AWS的输出为空。我想我甚至不能到达服务器,我怀疑角色或身份池的问题(我想用户池很好)。

我的身份池只使用AWS Cognito用户,而不是Facebook或其他身份提供商。

共有2个答案

汤博
2023-03-14

请确保你有所有必要的库'Amazon Cognito Idstore SDK for JavaScript'。以下是这些库的列表和链接。

1.用于JavaScript的Amazon Cognito AWS SDK-https://raw.githubusercontent.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js

2.用于JavaScript的Amazon Cognito Identity SDK-https://raw.githubusercontent.com/aws/amazon-cognito-identity-js/master/dist/amazon-cognito-identity.min.js

3.JavaScript BN库(jsbn.js,jsbn2.js)-http://www-cs-students.stanford.edu/~tjw/jsbn/

4.斯坦福JavaScript加密库-https://github.com/bitwiseshiftleft/sjcl

5.AWS SDK for JavaScript(可选,用于使用其他AWS服务)——http://aws.amazon.com/sdk-for-browser/

包括所有这些库,然后使用下面的代码段。

AWSCognito.config.region = 'YOUR_REGION';
var poolData = { 
    UserPoolId : 'YOUR_USER_POOL_ID', // Your user pool id here
    ClientId : 'YOUR_CLIENT_ID' // Your client id here
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
    Username : "userName", // your username here
    Pool : userPool
};
//Signing Users in the App
var authenticationData = {
    Username : "userName", // your username here
    Password : "password" // your password here
};

var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);

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

cognitoUser.authenticateUser(authenticationDetails, {
    onSuccess: function (result) {
        console.log('access token + ' + result.getAccessToken().getJwtToken());
    },
    onFailure: function(err) {
        console.log(err);
    }
});
金子平
2023-03-14

用重新编译SJCL——所有这些都解决了问题。

 类似资料:
  • 本文向大家介绍CKEditor无法验证的解决方案(js验证+jQuery Validate验证),包括了CKEditor无法验证的解决方案(js验证+jQuery Validate验证)的使用技巧和注意事项,需要的朋友参考一下 最近项目的前端使用了jQuery,表单的前端验证用的是jQuery Validate,用起来很简单方便,一直都很满意的。 前段时间,根据需求为表单中的 textarea 类

  • 我是XML验证方面的新手,在调用adobe server生成PDF之前,我被要求对XML进行验证。我有以下内容,我们通过对象获取XML,然后调用。如果有任何元素为null或空以停止生成pdf,任何人都可以帮助我一步一步地验证XML吗

  • 我正在尝试为消息设置MS Graph网络钩子订阅,但Graph似乎正在发送一个空白的validationToken。我正在连接到https://graph.microsoft.com/beta/subscriptions 我的APIendpoint在Postman中工作,并成功返回仅包含validationToken的明文响应,但是当我调用MS Graph时,我收到以下错误“订阅验证请求失败。响应

  • 我只是在测试贝宝IPN。我已经用沙盒装好了。我给它发了假的IPN请求,它却收到了IPN。然后,我让它返回信息进行验证,我将响应写到一个文本文件中,这样我就可以自己检查它了。IPN很好地启动,并且响应被写入文本文件。 我以前一直在用这个代码,我已经试着让它工作了一个星期,所以它不只是一个暂时的失败或什么的... 干杯伙计们。

  • 我的ldiff文件如下所示 用户密码在portal db中使用带有十六进制编码的MD5进行散列。还启用了pre-encoded-password为true,但没有帮助。 我的要求是我们有一个门户,其密码存储在MD5中的db中,使用十六进制编码,门户集成到ldap中,每次密码更改ldap都使用散列值更新,但上面的java程序根本不起作用。需要认真的帮助。 多谢了。

  • 我正在学习DOM,希望创建一个简单的JavaScript with Html测验(用于练习)。现在我遇到的问题是,当我点击提交时,所有的答案都是对的,而不是一个是对的,三个是错的。我认为这是我的html和我将ID分配给不同标签的方式的问题,但我不能弄清楚我做错了什么。 代码 多谢了。