Я пытаюсь работать с охранниками Auth в angular. У меня есть httpcall, который устанавливает значение true/false на основе ответа на HTTP-вызов. Проблемы: 1) httpClients возвращают наблюдаемое 2) подписка httpClient должна произойти до того, как будет вызван авторизованный метод, таким образом, hasSessionFlag уже установлен.
ДВОЙНАЯ СЛУЖБА .TS
hasSession() {
return this.http.get<{}>('API CALL', {
withCredentials: true,
observe: 'response'
}).subscribe((res=>{
if(res.status === 200) {
this.hasSessionFlag = true;
} else {
this.hasSessionFlag = false
}
}));
}
//Check if all the logical conditions of the user sessions pass*
isAuthorized(): boolean {
if (this.hasSessionFlag) {
this.authService.login();
} else {
this.dualLoginRedirect();
}
}
canActivate(): boolean {
return this.isAuthorized();
}
МАРШРУТИЗАТОР.ТС
{
canActivate: [DualLogonService],
path: 'test',
component: TestPageComponent
}