Как я могу создать временные учетные данные, используя Cognito Identity Pool для доступа к сервисам aws? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть пул Cognito и пул удостоверений.Я создал пользователя в пуле пользователей.Я получил токены, т.е. токены доступа, обновления, id, использующие лямбду для этого пользователя.Теперь я хочу сгенерировать временные учетные данные , т. Е. Ключ доступа и секретный ключ доступа для этого пользователя для доступа к службам aws.Как я мог это сделать?Это фрагмент кода, который я использовал для генерации токенов.

var authenticationDetails = new cognito.AuthenticationDetails(authenticationData);

    var userData = {
        Username : '*****',
        Pool : userPool
    };

var cognitoUser = new cognito.CognitoUser(userData);
    cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: function (result) {
console.log(result);

Какие изменения я должен сделать в этом, чтобы получить учетные данные?Спасибо ....

1 Ответ

0 голосов
/ 20 августа 2018

В приведенном ниже коде я получаю токены вместе с временными кредитами на основе федеративных идентификаторов.

var data = {
  UserPoolId: YOURUSER_POOL_ID,
  ClientId: YOURAPP_CLIENT_ID,
};
var userPool = new cognito.CognitoUserPool(data);
var cognitoUser = userPool.getCurrentUser();
if (cognitoUser != null) {
  cognitoUser.getSession(function(err, session) {
    if (err) {
      console.log(err);
      return;
    }

    console.log('session validity: ' + session.isValid());
    console.log('session Identity token: ' + session.getIdToken().getJwtToken());

    AWS.config.region = YOURREGION;
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
      IdentityPoolId : YOURIDENTITY_POOL_ID, 
      Logins : {
        // Change the key below according to the specific region your user pool is in.
        'cognito-idp.YOURREGIONNAME.amazonaws.com/YOURUSERPOOLID': session.getIdToken().getJwtToken()
      }
    });

    AWS.config.credentials.get(function(err,data) {
      if (!err) {
        var id = AWS.config.credentials.identityId;
        var key = AWS.config.credentials.accessKeyId;
        var secretkey = AWS.config.credentials.secretAccessKey;
        var sessionToken = AWS.config.credentials.sessionToken;
        console.log('Cognito Identity ID '+ id);
        console.log('Cognito Key '+ key);
        console.log('Cognito Secret Key '+ secretkey);
        console.log('Cognito SessionToken '+ sessionToken);
      }
    });
  });
} 

Измените необходимые параметры в соответствии с вашими.

Надеюсь, это может помочь вам

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