[英]How to get the credentials using only Cognito Identity pool?
我希望通過 Cognito 身份池獲取臨時 AWS 憑證。 然后該憑證應訪問 AWS Transcribe 服務。
我創建了一個身份池並檢查了未經身份驗證的用戶的選項,這樣我在調用CognitoIdentityCredentials時就不必提供令牌。
然后我在未經身份驗證的角色( Cognito_TestIdentityPoolUnauth_Role-New )中附加了轉錄服務的權限。
但是當我調用CognitoIdentityCredentials時,我沒有得到憑據。
這是我的代碼:-
const AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
// Configure the credentials provider to use your identity pool
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
identityPoolId: 'your_pool_id',
});
let accessKeyId, secretAccessKey, sessionToken;
// Make the call to obtain credentials
AWS.config.credentials.get(function(){
// Credentials will be available when this function is called.
accessKeyId = AWS.config.credentials.accessKeyId;
secretAccessKey = AWS.config.credentials.secretAccessKey;
sessionToken = AWS.config.credentials.sessionToken;
console.log('data', accessKeyId, secretAccessKey, sessionToken);
});
acessKeyId 、 secretAccessKey和sessionToken是未定義的。 我在這里想念什么?
所以回答我自己的問題。 SDK 中的最新憑證不知何故未更新。 我也在同一個 function 中使用 S3 服務,並且該服務的信譽不同。 這是對我有用的更新代碼。 這是幫助我的線程。
const creds = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'identity_pool_id',
})
AWS.config.update({
region: 'us-east-1',
credentials: creds,
});
AWS.config.credentials.get(function () {
// Credentials will be available when this function is called.
const accessKeyId = AWS.config.credentials.accessKeyId;
const secretAccessKey = AWS.config.credentials.secretAccessKey;
const sessionToken = AWS.config.credentials.sessionToken;
console.log(accessKeyId, secretAccessKey, sessionToken);
});
PS:- 使用節點 v14。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.