Я пытаюсь достичь этой конечной точки AWS :
https://abcde12345hf.execute-api.us-east-2.amazonaws.com/dev/users
, которая возвращает:
[{
"id": 1,
"name": "Mike"
},{
"id": 2,
"name": "Brian"
}]
- В моем коде Angular яиспользуя AWS4 библиотеку для отправки secretAccessKey , accessKeyId и sessionToken для аутентификации пользователя, но я получаю следующееошибка:
core.js: 12501 ОШИБКА: ошибка: не выполнена (в обещании): ошибка: запрос не выполнен с кодом состояния 403 Ошибка: запрос не выполнен с кодом состояния 403
- Кто-нибудь знает, как правильно использовать AWS4 с Angular, чтобы я мог сделать этот простой вызов GET?или кто-нибудь знает другой способ сделать этот вызов, используя эти ключи и токен для аутентификации?Заранее большое спасибо!
Так я получаю ключи и токен (эта часть прекрасно работает)
AWS.config.region = 'us-east-2';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-2:ehkjthf-sf23-12ds-xxxxxxxxx',
Logins: {
'cognito-idp.us-east-2.amazonaws.com/us-east-2_Raxxxx': this.id_token
}
});
console.log(AWS.config.credentials);
Теперь вот как я использую эти ключи и токен для вызова GET.
(AWS.config.credentials as AWS.Credentials).get(function(error: AWSError){
if(error){
console.log('Error ', error);
}else{
let request = {
host: 'https://abcde12345hf.execute-api.us-east-2.amazonaws.com/dev/users',
method: 'GET',
url: 'https://abcde12345hf.execute-api.us-east-2.amazonaws.com/dev/users',
path: '/users',
headers: {
"Content-Type":"application/json"
},
}
let signedRequest = aws4.sign(request,
{
secretAccessKey: AWS.config.credentials.secretAccessKey,
accessKeyId: AWS.config.credentials.accessKeyId,
sessionToken: AWS.config.credentials.sessionToken
});
delete signedRequest.headers['Host']
delete signedRequest.headers['Content-Length']
axios(signedRequest).then((response) =>{
console.log(response); // Output the Array Object here
});
}
});