我有一个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的重复路径,其中一个失败而另一个失败?即使你可以,那仍然会很笨拙。