User Pools for Amazon Cognito - CredentialsError: Missing credentials in config
I used AWS amplify to configure AWS sdk and AWS ses. I had the same error but was able to overcome using below solution. I used AWS amplify and React js.
Hope this helpful for who had issues with amplify and sdk.
Auth.currentCredentials().then(res => {
AWS.config.update({
region: 'ap-southeast-1',
credentials: res
});
AWS.config.getCredentials(function (err) {
if (err) console.log(err.stack); // credentials not loaded
else console.log("Access Key:", AWS.config.credentials.accessKeyId);
})
var ses = new AWS.SES({
region: 'ap-south-1',
apiVersion: '2010-12-01'
});
this.setState({
open: false,
ses: ses
});
AWS.config.getCredentials(function (err) {
if (err) console.log(err.stack); // credentials not loaded
else console.log("Access Key:", AWS.config.credentials.accessKeyId);
})
})
I got it resolved by using below code apparently, there's no need to provide IdentityPoolId in this example at all, these are just the placeholders which can be left as below -
AWS.config.region = 'us-east-1'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: '...'
});
AWSCognito.config.region = 'us-east-1';
AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: '...'
});
And both of the credential AWS.config.credentials and AWSCognito.config.credentials need to be set. Once the above steps complete the AWSCognito.config needs to be updated as below -
// Need to provide placeholder keys unless unauthorised user access is enabled for user pool
AWSCognito.config.update({accessKeyId: 'anything', secretAccessKey: 'anything'})
var poolData = {
UserPoolId : 'user pool id collected from user pool',
ClientId : 'application client id of app subscribed to user pool'
};
dataPhoneNumber and userData are optional, dataPhoneNumber should be provided in case sms verification for signup is required.
The problem was resolved once the above were in place, Identity-Code is a working model if anyone want to have a look at it.