Aws cognito создать пользователя с помощью admin nodejs - PullRequest
0 голосов
/ 15 января 2019

Я использую javascript sdk amazon-cognito-identity-js и пытаюсь создать пользователя в cognito в nodejs, но появляется ошибка ниже мой код: -

    var AWS = require("aws-sdk")
    var params = {
    UserPoolId: "id",
    Username: req.body.username,
    DesiredDeliveryMediums: ["EMAIL"],
    ForceAliasCreation: false,
    TemporaryPassword: req.body.password,
    UserAttributes: [
      { Name: "name", Value: req.body.name },
      { Name: "email", Value: req.body.user_email}
    ],
  };
     let client = new AWS.CognitoIdentityServiceProvider();


client.adminCreateUser(params, function(err, data) {
    if (err) {
        console.log("EE",err);
      //  reject(err);
    } else {
        console.log("DDD",data);
        //resolve(data);
    }
})

Но я получаю эту ошибку, используя код: -

   EE { UnknownError: Not Found
   at Request.extractError (/var/task/node_modules/aws- 
  sdk/lib/protocol/json.js:48:27)
  }

Пожалуйста, помогите мне разобраться с этой проблемой.

1 Ответ

0 голосов
/ 12 февраля 2019

Вот решение.

Предварительное требование Если вы хотите использовать учетные данные в aws-sdk (Ручной процесс) 1. Создайте пользователя IAM и назначьте роль Cognito вашему пользователю. 2. Сгенерируйте ключ доступа и секретный ключ для этого пользователя. 3. Используйте этот ключ доступа и секретный ключ в aws-sdk.

Как это,

let AWS = require("aws-sdk");
AWS.config.update({
    accessKeyId: "YOURKEY",
    secretAccessKey: "YOURSECRET",
    region: "YOURREGION"
});

Создать объект CognitoIdentityServiceProvider , класс

const COGNITO_CLIENT = new AWS.CognitoIdentityServiceProvider({
  apiVersion: "2016-04-19",
  region: "us-east-1"
});


var poolData = {
    UserPoolId: "XXXXXXXXX",
    Username: "kurulezomi@themailpro.net",
    DesiredDeliveryMediums: ["EMAIL"],
    TemporaryPassword: "Abc@321",
    UserAttributes: [
      {
        Name: "email",
        Value: "kuri@themailpro.net"
      },
      {
        Name: "email_verified",
        Value: "true"
      }
    ]
  };
  COGNITO_CLIENT.adminCreateUser(poolData, (error, data) => {
    console.log(error);
    console.log(data);
    callback(null, {
      statusCode: 200,
      body: JSON.stringify(data)
    });
  });

В противном случае вы можете напрямую назначить роль IAM своему экземпляру EC2, в этом случае вам не нужно устанавливать учетные данные в AWS.config разделе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...