为新路由器设置身份验证 Angular 2 (>= rc1)

Setting up authentication Angular 2 for new router (>= rc1)

我刚刚为我的 angular 2 应用程序设置了身份验证和 运行,但我现在正在尝试升级到新的路由器,删除已弃用的路由器。问题是我的策略不再奏效了。

在旧路由器中,我扩展了路由器插座以检查 URL 是否能够激活。如果不是,我只是重定向到我的登录页面。

然而,在新路由器中,路由器插座不再存在。新的最佳策略是什么?

一个选项是订阅路由器,以便在路由更改时评估用户是否登录,因此在您的 AppComponent 中如下所示:

constructor (private _router: Router) {} 

ngOnInit(){
  this._router.subscribe(
    next => {
      if (!userIsLoggedInOrWhatever) {
        this._router.navigate(['Login']);
      }
    }
  )    
}

https://angular.io/api/router/Router