Обработка запросов POST на Angular 6 с помощью токенов AWS Cognito - PullRequest
0 голосов
/ 19 ноября 2018

Я создаю веб-приложение для проекта класса, который использует 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, яЯ не уверен, является ли это правильной реализацией почтового запроса или как это можно улучшить для повышения производительности (в случае, если это имеет проблемы).Кроме того, я не уверен, правильно ли я обращаюсь с обратными вызовами.

Надеюсь получить отзывы и спасибо за внимание.

...