Angular Dart: перенаправлять пользователей на страницу входа, если пользователь не вошел в систему - PullRequest
0 голосов
/ 10 июля 2020

Я работаю над веб-сайтом с Angular Dart, и я пытаюсь реализовать маршрутизацию, поэтому я определил следующие маршруты, как описано в документации:

class Routes {
  static final login = RouteDefinition(
      routePath: RoutePaths.login,
      component: login_component.LoginComponentNgFactory,
      useAsDefault: true
  );
  static final downloads = RouteDefinition(
      routePath: RoutePaths.downloads,
      component: download_component.DownloadComponentNgFactory
  );
  static final management = RouteDefinition(
      routePath: RoutePaths.management,
      component: management_component.ManagementComponentNgFactory,
  );
  static final objects = RouteDefinition(
      routePath: RoutePaths.objects,
      component: object_component.ObjectComponentNgFactory
  );
  static final reports = RouteDefinition(
      routePath: RoutePaths.reports,
      component: report_bug_component.ReportBugComponentNgFactory
  );
  static final settings = RouteDefinition(
      routePath: RoutePaths.settings,
      component: settings_component.SettingsComponentNgFactory
  );

  static final all = <RouteDefinition>[
    login,
    downloads,
    management,
    objects,
    reports,
    settings
  ];
}

Я установил страницу входа быть маршрутом по умолчанию, но я хочу запретить пользователям переходить по разным маршрутам до входа в систему. Поэтому, если пользователь переходит на URL / downloads до входа в систему, я хочу перенаправить их на страницу входа. Я читал, что это возможно в Angular Typescript, добавив CanActivate: [AuthGuard] к маршрутам, но это кажется невозможным с Angular Dart. Кто-нибудь знает другой способ добиться этого?

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете проверить статус входа в root AppComponent. например, ngOnInit событие. Если пользователь не вошел в систему, вы можете перенаправить его на страницу входа:

_router.navigate(_loginUrl);

Подробнее об императивном перенаправлении - можно найти здесь

К сожалению , В этом году разработка AngularDart кажется не очень активной.

...