gpt4 book ai didi

javascript - 如何使用 Cognito Identity 池生成临时凭证以访问 aws 服务?

转载 作者:行者123 更新时间:2023-11-29 20:53:28 25 4
gpt4 key购买 nike

我有一个 Cognito 用户池和身份池。我在用户池中创建了一个用户。我为该用户获取了 token ,即使用 lambda 的访问、刷新、id token 。现在我想要生成临时凭证,即访问 key 和 secret 访问 key ,供该用户访问 aws 服务。我怎么能这样做?这是我用来生成 token 的一段代码。

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);

我应该对此做哪些更改才能获得凭据?谢谢....

最佳答案

在下面的代码中,我正在检索 token 以及基于联合身份的临时信用。

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);
}
});
});
}

根据您的需要更改必要的参数。

希望对你有帮助

关于javascript - 如何使用 Cognito Identity 池生成临时凭证以访问 aws 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com