我正在尝试获取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,这正是我想要的。