Я создал следующий AuthenticatedGuard в Angular 9:
export class AuthenticatedGuard implements CanActivate {
constructor(private authenticationService: AuthenticationService) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return this.authenticationService.isSignedIn();
this.authenticationService.signInRedirect({ state: { url: state.url }}).subscribe();
}
}
Метод authenticationService.isSignedIn
возвращает Observable<boolean>
, а authenticationService.signInRedirect()
возвращает Observable<any>
.
поведение должно быть:
Если authenticationService.isSignedIn
равно false
, тогда выполните:
this.authenticationService.signInRedirect({ state: { url: state.url }}).subscribe();
Можно ли это сделать и по-прежнему использовать Observable?