Невозможно получить состояние аутентификации после входа в систему с помощью ampifyService

У меня есть это базовое простое приложение angular, которое пытается аутентифицироваться с помощью библиотеки AWS Amplify и Cognito hostedUI.

В компоненте входа ниже я ожидаю authState.state == 'signedIn', но состояние неверно и, следовательно, не перенаправляется на домашнюю страницу.

Вот что я пытаюсь сделать:

  • На странице localhost:4200/ отображается кнопка входа в систему
  • При нажатии кнопки входа -> вызывается компонент входа в систему. Конструктор автоматически переходит к размещенному диалоговому окну входа в пользовательский интерфейс.
  • Когда пользователь вводит действительные учетные данные, он должен перенаправить на домашнюю страницу. Поскольку состояние аутентификации неверно, перенаправление на домашнюю страницу не работает.

    Первый раз, когда его выполненный authState.state возвращает SignOut, что является частью проблемы.

    Бэкэнд-аутентификация с Cognito работает нормально. В Chrome DevTools -> Application -> Local Storage я вижу все сохраненные токены.

app.component.html

<mat-toolbar color="primary">
  <mat-toolbar-row>
    <div>
      <a mat-button  [routerLink]="'/login'">Login</a>   
     </div>          
  </mat-toolbar-row>  
</mat-toolbar>
<router-outlet></router-outlet>

App-routing.module.ts

const routes: Routes = [
  { path: 'home', component: HomeComponent },
  { path: 'login', component: LoginComponent }
];

login.component.ts

export class LoginComponent implements OnInit {
  url = "https://login.auth.ap-southeast-2.amazoncognito.com/login?client_id=66g6aiuglfa74fnp&response_type=code&scope=openid+phone&redirect_uri=http://localhost:4200/";

  constructor(private amplifyService: AmplifyService, private router: Router) { 

    // Open the hosted UI login URL
    window.location.assign(this.url);    

    this.amplifyService.authStateChange$
      .subscribe(authState => {
        console.log("Signed in .. "+JSON.stringify(authState, null, 2))
        if (authState.state === 'signedIn') {
          this.router.navigate(['/home']);
        }
      });
  }  

  ngOnInit() {
  }
}

В консоли отладчика я вижу это:

0 ответов

Другие вопросы по тегам