Как перехватить http-вызовы Amplify-Cognito в Angular 7+ - PullRequest
0 голосов
/ 28 февраля 2020

В моей службе авторизации у меня есть

import { Injectable } from '@angular/core';
import{ CognitoUser} from 'amazon-cognito-identity-js'
import Auth from '@aws-amplify/auth';
import { Router } from '@angular/router';

... среди других методов в классе у меня есть этот, чтобы сбросить пароль в Cognito

export class AuthenticationService {

...

  passwordResetConfirmation(username, code, new_password){
    Auth.forgotPasswordSubmit(username, code, new_password)
    .then(data => {console.log(data)})
    .catch(err => console.log(err));
  }
}

Как вы видите, здесь нет HttpClient из Angular, однако Amplify каким-то образом выполняет Http-запросы. Как я могу получить доступ к этому полному ответу, включая заголовок. * Перехватчик angular не ловит и не делает что-либо с Cognito. Мне нужно получить код состояния ответа, чтобы убедиться, что он был успешным

1 Ответ

0 голосов
/ 02 марта 2020

Отклонение обещания ForgotPasswordSubmit является признаком сбоя. Проверьте отклонение обещания в .then . Функция Amplify Auth ForgotPasswordSubmit отклонит обещание с объектом err из метода CognitoUser.ChangePassword . Это просто означает, что дополнительную информацию, такую ​​как код ответа http, нельзя получить из ответа функции платформы Amazon Cognito Identity SDK .

Если необходимо перехватить, рассмотрим работника службы . Приложение Amplify Angular может создать работника службы и настроить работника на перехват сетевых вызовов http.

...