Я создаю веб-приложение для проекта класса, который использует Angular 6 в клиенте, и я использую Cognito для аутентификации и авторизации в некоторых методах.
Я искал много документации, связанной с Cognito и Angular, и в итоге я нашел следующее решение (которое работает) для отправки запроса с использованием токена в заголовке запроса.В моем сервисе есть метод, который делает запрос, и этот запрос имеет ответ.Этот метод вызывается из моего component.ts
parking-lots.component.ts
this.parkingLotsService
.makeAReservation(reservation)
.subscribe(res => {
if (res) {
alert(
'La reserva ha sido realizada con exito a las ' +
selectedHour +
':' +
selectedMinutes
);
document.getElementById('closeModal').click();
}
});
getAuthenticatedUser () -> Этопозвонил в мою службу из службы аутентификации
getAuthenticatedUser() {
const user = userPool.getCurrentUser();
if (user === null) {
alert('Debes iniciar sesión para continuar');
window.location.reload();
}
return userPool.getCurrentUser();}
parking-lots.service.ts
makeAReservation(reservation) {
return this.authentication
.getAuthenticatedUser()
.getSession((err, session) => {
if (err) {
alert(err);
return;
}
const idToken = session.getIdToken();
const token = idToken.getJwtToken();
this.options = new RequestOptions({
headers: new Headers({
'Content-Type': 'application/json',
Authorization: token
})
});
reservation.user = idToken.payload.email;
return this.http
.post(
'https://myendpoint.com',
reservation,
this.options
)
.pipe(map(res => res.json()));
});}
Поскольку я раньше не использовал Cognito, яЯ не уверен, является ли это правильной реализацией почтового запроса или как это можно улучшить для повышения производительности (в случае, если это имеет проблемы).Кроме того, я не уверен, правильно ли я обращаюсь с обратными вызовами.
Надеюсь получить отзывы и спасибо за внимание.