У меня нет страницы входа, это вызов sso
В компоненте приложения я отправил действие для загрузки вызова токена на стороне сервера и получения токена на основе ролей пользователя. Я могу активировать охрану в маршрутизации. если защита активирует возвращаемое значение true, я буду go на странице панели инструментов.
На странице панели инструментов у меня есть refre sh в URL-адресе браузера, я могу активировать execute до эффектов действия входа в систему, поэтому могу активировать return false и страница отображается пустой.
В панели мониторинга есть дочерние маршруты, также есть некоторые дочерние ссылки, такие как панель инструментов / products products, также есть активированная защита, но она может активировать функцию возврата false до того, как действие отправки рассылки входа будет успешным. call.
Может кто-нибудь помочь мне, что я делаю неправильно?
здесь маршрутизация,
{
path: '',
component: HomeComponent,
canActivate:[AuthGuard],
children: [
{
path: 'product',
loadChildren: () => productModule
},
{
path: 'order',
loadChildren: () => orderModule
}
]
},
здесь метод активации: здесь я получаю успех от вызова эффектов при отправке действия из app.component:
canActivate(): Observable<boolean> {
return this.store.select(appState => appState.auth.isAuthenticated)
.pipe(map(authUser => {
if (!authUser) {
return authUser;
}
return authUser;
}))
}
App.comp onet:
ngOnInit(){
this.onSubmit();
}
onSubmit(): void {
const payload = {
email: 'test@test.com',
password: 'admin'
};
alert('dispatch an action');
this.store.dispatch(new LogIn(payload));
}
проблема только в ссылке refre sh. при нажатии на ссылку роутера логи c работает нормально.
мое начальное состояние:
export const initialState: State = {
isAuthenticating:false,
isAuthenticated: false,
user: null,
errorMessage: null
};
скриншот потока: