0

我正在使用允許用戶發送短信的第三方軟件(twilio/plivo),並且我想在發佈到DynamoDB之前驗證電話號碼是否有效並屬於用戶。我可以在沒有用戶令牌的情況下訪問Cognito中的用戶信息嗎?

我有一個EC2例如設立nodejs的是它和電話號碼的來電短信跑步,所以我怎麼會去交叉檢查這個電話號碼與cognito,因爲它是通過移動短信,而不是通過網站完成?

我在我們的網站上使用API​​網關來檢查用戶確實是誰,他們說他們是,但因爲它需要一個令牌來驗證用戶我不認爲這是可能通過短信?

編輯︰看來我可以看到我的所有用戶,如果他們驗證,他們的電話號碼。當然,我可以編寫和調用一些bash腳本,它具有管理員IAM權限和cognito以獲得相同的訪問權限?或者甚至可以使用nodeJS來做到這一點?

+0

噢,更糟糕的是,我們的dynamoDB表有partitionKey是用戶的UID,所以我將如何正確,即使這個傳入的文本關聯起來,並得到他們的UID?使用APi網關,我們使用了$ context.authorizer.claims.sub – VDog

回答

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"]); 
    } 
}); 
相關問題