如何获取会话回调信息? AWS-Cognito-JavaScript

时间:2019-05-28 20:22:06

标签: amazon-web-services authentication token amazon-cognito

我正在尝试获取AccessKeyID和SecretKey(最终以编程方式输入到具有精细访问控制的dynamoDB上的CRUD操作中)。

任何人,都有许多API调用来获取诸如getCredentialsForIdentity()之类的凭据。但是,这些都需要进一步的参数,这需要更多的api请求和更多的参数,等等。

我找到了一种登录Cognito用户的方法,然后检查他们是否登录了个人资料页面,该页面可以显示电子邮件和用户名:

var data = { 
    UserPoolId : _config.cognito.userPoolId,
            ClientId : _config.cognito.clientId
    };
    var userPool = new AmazonCognitoIdentity.CognitoUserPool(data);
    var cognitoUser = userPool.getCurrentUser();

window.onload = function(){
        if (cognitoUser != null) {
            cognitoUser.getSession(function(err, session) {
                if (err) {
                    alert(err);
                    return;
                }

            console.log('session validity: ' + session.isValid());
            console.log(session.Credentials.AccessKeyId); //<--THIS DOESNT WORK

    cognitoUser.getUserAttributes(function(err, result) {
        if (err) {
            console.log(err);
            return;
            }
        console.log(result);

            document.getElementById("email_value").innerHTML = result[2].getValue();    
            document.getElementById("username").innerHTML = cognitoUser.getUsername();  
    });                 
      });
    }
  }

console.log(session.Credentials.AccessKeyId);似乎是无效的请求。我假设session中有一些不错的回调信息,例如AccessKeyID和SecretKey,这正是我想要的。

1 个答案:

答案 0 :(得分:0)

session.Credentials.AccessKeyId将不起作用,因为会话的输出为:

  

e {idToken:t,refreshToken:e,accessToken:t,clockDrift:0}

AWS.config.credentials的输出为:

enter image description here

因此您的代码将是:

GetType()