Я пытаюсь получить AccessKeyID и SecretKey (в конечном итоге для программного ввода в операцию CRUD на DynamoDB с точным контролем доступа).
В любом случае, существует много вызовов 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, и это то, что я ищу.