У меня есть пользователи, которые могут войти в систему, выйти из системы, зарегистрироваться, сбросить пароль - все это с помощью AWS усиливается в моем коде React.js.
После того, как они вошли в систему, я хочу получить свой API-шлюз, который использует Authorization: UserCognito, , затем перейти к лямбда-функции, где я хочу иметь возможность извлекать данные, переданные в мой API, и возвращать их информация из DynamoDB с информацией об их профиле (например, имя, изображение, адрес электронной почты).
Когда я получаю API, я получаю {"message":"Unauthorized"}
Я называю API следующим образом:
getProfileInfo(user.signInUserSession.idToken.jwtToken).then(user => {
console.log(user);
});
и даже попробовали это:
```
let token = await Auth.currentCredentials();
console.log(token);
const options = {
method: "POST",
headers: {
"content-type": "application/json",
Authorization: token.sessionToken
}
};
let res = GetProfileInfo(token.sessionToken);
API.post("XXURL", "", options);
````
С getProfileInfo выглядит как:
const getProfileInfo = async user => {
let url = XXXXXXXX
console.log(user);
const data = await fetch(url, {
method: "POST",
headers: {
"content-type": "application/json",
Authorization: user
},
mode: "cors"
})
.then(response => {
console.log(response);
return response.json();
})
.then(data => {
return data;
})
.catch(error => {
return error;
});
return data;
Итак - как мне передать информацию моего пользователя из AWS-ampleify в мой API, на стороне переднего плана реакции - чтобы он мог авторизовать их, а затем запустить мою функцию лямбда, где я беру их информацию пользователя и поискать их профиль в моем DynamoDB?
Мой API-шлюз имеет токен, которому присвоено значение Authorization
при настройке моего авторизатора.
Кроме того, для моего API настроены сопоставления шаблонов, которые выглядят так:
```
{
"context" : {
"sub" : "$context.authorizer.claims.sub",
"email" : "$context.authorizer.claims.email"
}
}
```
Но все равно ничего, кроме Несанкционированного, не возвращается. Так что я делаю не так?