在应用程序加载之前将应用程序重定向到外部网址:Angular 6

时间:2019-02-28 13:47:03

标签: typescript angular6 microservices angular-routing

这种情况是,在应用程序组件上,我检查用户是否已通过身份验证,如果未通过身份验证,则将用户重定向到具有登录页面的rest api调用。 当前代码在app.component.ts的结构上具有api重定向调用 所以发生的是 app.component的html页面加载1秒钟,然后发生重定向。 如何在屏幕上加载任何html(DOM元素)之前将用户重定向到其他api网址

1 个答案:

答案 0 :(得分:0)

您可以使用canActivate

检查用户是否已在您的路线中登录

例如:

app.module.ts

const appRoutes: Routes = [{
    path: '',
    component: HomelayoutComponent,
    canActivate: [LoginGuardService]
}]

您的login-guard.service.ts

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
 // Implement here your auth check logic
  if (localStorage.getItem('jwtToken')) {
    return true;
  }

  // not logged in so redirect to login page with the return url and return false
  this.router.navigate(['login'], {
    queryParams: {
      returnUrl: state.url
    }
  });
  return false;
}