Как я могу создать временные учетные данные, используя Cognito Identity Pool для доступа к сервисам aws?
У меня есть пул Cognito пользователей и пул идентичности. Я создал пользователя в пуле пользователей. Я получил токены, т.е. доступ, обновление, идентификационные токены, использующие лямбду для этого пользователя. Теперь я хочу сгенерировать временные учетные данные, т.е. ключ доступа и секретный ключ доступа, чтобы этот пользователь мог получить доступ к сервисам 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 ответ
В приведенном ниже коде я получаю токены вместе с временными кредитами на основе федеративных идентификаторов.
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);
}
});
});
}
Измените необходимые параметры в соответствии с вашими.
Надеюсь, это поможет вам