【发布时间】:2019-10-14 10:00:20
【问题描述】:
我正在尝试获取 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。
【问题讨论】:
标签: amazon-web-services authentication token amazon-cognito