Регулирование навигации для предотвращения зависания браузера и зависания браузера при выходе из приложения - PullRequest
0 голосов
/ 31 марта 2020

Я создал AuthGuard и внедрил интерфейс canActivate:

@Injectable()

export class AuthGuard implements CanActivate {
constructor(private userservice: UserAuthenticationService, private router: Router) { }
canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): boolean {
    if (this.userservice.isLoggedIn()) {

        return true;
    }else{
    this.router.navigateByUrl('')
    return false;
    }
  }
}

Ниже представлен модуль маршрутизации моего приложения:

export const appRoutes: Routes = [

{
 path: '',
 component: Home,
 children: [
 { path: '', component: Login },
 { path: 'forgot-password', component: ForgotPassword }
 ]
 },
{
    path: 'dashboard',
    component: DashboardComponent,
    canActivate: [AuthGuard],
    pathMatch: 'full',
},
{
    path: 'dashboard/entity',
    component: EntityComponent
},
{
    path: 'Profile',
    component: ProfileComponent,
    pathMatch: 'full',
    canActivate: [AuthGuard]
},
{
    path: '**',
    component: DashboardComponent
}
];

@NgModule({
imports: [RouterModule.forRoot(appRoutes)],
exports: [RouterModule]
})
export class AppRoutingModule { }

Теперь, когда я выхожу из системы:

deleteAuth(): void {
    sessionStorage.removeItem('auth');
    this.router.navigateByUrl('');
}

мой браузер аварийно завершает работу (зависает), и на консоли отображается: регулирование навигации для предотвращения зависания браузера. См. https://crbug.com/882238. Переключатель командной строки --disable-ip c -flooding-protection может использоваться для обхода защиты

...