基于登录状态的角度路由

时间:2018-02-08 19:47:16

标签: angular router

我有一个Angular 5应用程序,允许用户长时间保持登录状态。我们为公众提供了一个标准的目标网页,但我希望普通用户能够在他们登录后立即访问他们的网页。即访问yarn-default.xml的用户会访问登录页面如果他们没有永久登录,他们的页面是否已登录。

为此,我设置了一个基于登录状态重新导航的虚拟组件。以下是我的代码。

let routes = [
  { path: "", component: DefaultPageComponent },
  { path: "home", component: HomePageComponent },
  { path: "user/:id", component: MainPageComponent, data: { obj: "user" } },
  { path: "**", component: DefaultPageComponent }
];

DefaultPageComponent是:

@Component({
  template: ""
})
export class DefaultPageComponent {
  constructor(router: Router, authUtils: AuthUtilsService) {
    authUtils.isLoggedIn().then(logindata => {
      if (logindata.user) {
        router.navigate(["user", logindata.user.id]);
      } else {
        router.navigate(["home"]);
      }
    });
  }
}

必须有更好的方法来做到这一点。有人知道吗?

例如,您是否可以设置具有不同Route Guards的重复路径,其中一个失败而另一个失败?即使你可以,那仍然会很笨拙。

0 个答案:

没有答案