我是否可以在没有用户令牌的情况下访问Cognito中的用户信息?

时间:2017-07-06 20:51:59

标签: node.js amazon-web-services amazon-ec2 twilio amazon-cognito

我使用的是允许用户发送短信(twilio/plivo)的第三方软件,我想在将其发送到{{DynamoDB之前验证该电话号码是否有效且属于用户1}}。

我在EC2上设置了一个nodejs实例,可以收到带有电话号码的短信,那么我该如何与cognito交叉检查此电话号码,因为它& #39;是通过移动短信而不是通过网站完成的?

我在我们的网站上使用API​​网关来检查用户是否确实是他们所说的人,但由于它需要令牌来验证用户我不认为这可以通过短信来实现?

编辑:似乎我可以看到我的所有用户,如果他们已经过验证,以及他们的电话号码。当然,我可以编写和调用一些bash脚本,它具有与cognito的管理员IAM权限以获得相同的访问权限吗?或者甚至可以使用nodeJS做到这一点?

1 个答案:

答案 0 :(得分:0)

啊,我想通了!在我的EC2实例上是私有的:

//aws cognito access
const aws = require('aws-sdk');
aws.config.update({
    accessKeyId: 'key',
    secretAccessKey: 'accessKey'
});
const CognitoIdentityServiceProvider = aws.CognitoIdentityServiceProvider;
const client = new CognitoIdentityServiceProvider({ apiVersion: '2016-04-18', region: 'REGION'});

//cognito request things

var params = {
    UserPoolId: 'UserPoolID', /* required */
    AttributesToGet: [
        'sub',
        'email_verified'
        /* more items */
    ],
    Filter: 'phone_number="+someNumber"',
    Limit: 10
};

client.listUsers(params, function(err, data) {
    if (err) {
        console.log(err, err.stack);
    } else {
        console.log(data);
        console.log(data["Users"][0]["Attributes"]);
    }
});