Когда мы используем социальный вход в систему с AWS Cognito, Cognito отправляет перенаправление в браузер на go на signin redirect
URL-адрес входа в систему. Конфигурированный URL-адрес для этого в этом случае: http://localhost:4200/home/
.
Когда приложение получает это перенаправление, оно выполняет от go до http://localhost:4200/home/
, однако отображаемый компонент по-прежнему остается для http:localhost:4200/signin/
. Если я вручную обновлю sh страницу, выбрав URL и нажав Enter, отобразится домашний компонент.
Конфигурация маршрутизатора выглядит следующим образом:
const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'signin' },
{ path: 'home', component: HomeComponent, canActivate: [ AuthGuard ] },
{ path: 'signin', component: SigninComponent, canActivate: [ UnauthGuard ] },
{ path: 'signout', component: SignoutComponent, canActivate: [ UnauthGuard ] }
]
Таким образом, приложение всегда сначала перенаправляет на signin
. Кажется, проблема в двойном перенаправлении.
Мысли о том, как это исправить?
Я пробовал без перенаправления Router
. Я добавил страницу welcome
, отображаемую с маршрутом ''
. При нажатии входа в систему на этой странице приложение по-прежнему перезагружается с маршрутом signin
изначально (там, где он остановился) и перенаправляет на маршрут home
, однако компонент входа по-прежнему отображается.
const routes: Routes = [
{ path: '', component: WelcomeComponent, canActivate: [ UnauthGuard ] },
{ path: 'home', component: HomeComponent, canActivate: [ AuthGuard ] },
{ path: 'signin', component: SigninComponent, canActivate: [ UnauthGuard ] },
{ path: 'signout', component: SignoutComponent, canActivate: [ UnauthGuard ] }
]
Обновление
См. Ответ. Подал отчет об ошибке:
https://github.com/aws-amplify/amplify-js/issues/4988