0

Ich verwende eine Software von Drittanbietern, die Benutzern ermöglicht, Textnachrichten (twilio/plivo) zu senden, und ich wollte überprüfen, dass die Telefonnummer gültig ist und einem Benutzer gehört, bevor Sie es an DynamoDB senden.Kann ich in Cognito ohne Benutzer-Token auf Benutzerinformationen zugreifen?

Ich habe eine EC2 Instanz auf nodejs lief einrichten, die eingehende SMS mit Telefonnummer bekommt, so wie würde ich mich über Kreuz diese Telefonnummer mit cognito Überprüfung, da über eine mobile SMS-Nachricht fertig ist es und nicht über eine Website ?

Ich benutze API-Gateway auf unserer Website zu überprüfen, ob ein Benutzer tatsächlich ist, wer sie sagen, sie sind, aber da es ein Token benötigt, um einen Benutzer zu validieren, glaube ich nicht, dass dies über Textnachrichten möglich ist?

EDIT: Es scheint, ich kann alle meine Benutzer sehen, wenn sie verifiziert sind, und ihre Telefonnummern. Sicherlich gibt es ein Bash-Skript, das ich schreiben und aufrufen kann, das Administrator-IAM-Rechte mit cognito hat, um denselben Zugang zu erhalten? Oder vielleicht sogar mit nodeJS?

+0

oh und alles noch schlimmer zu machen, Tisch unserer DynamoDB hat PartitionKey der Benutzer UID ist, so wie würde ich sogar richtig diesen eingehenden Text verknüpfen und ihre UID bekommen? Mit APi Gateway haben wir $ context.authorizer.claims.sub verwendet – VDog

Antwort

0

Ah, ich habe es herausgefunden! auf meiner EC2-Instanz, die privat ist:

//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"]); 
    } 
}); 
Verwandte Themen