繁体   English   中英

使用Ngrx存储进行身份验证的路由防护

[英]Route guard for authentication with ngrx store

我正在尝试创建AuthGuard以检查用户是否可以访问路由,否则,将重定向到登录视图。 我想从canActivate方法返回一个Observable<Boolean|UrlTree> 这是我到目前为止所拥有的。

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

    return this.store$.select(appState => appState.auth.authUser)
    .pipe(map(authUser => Boolean(authUser)));
}

但是,我不太确定如何/在何处可以从可观察对象发出UrlTree重定向到/login ,这是因为我不熟悉整个事情,尤其是rxjs。 在此先感谢您的帮助。

也许就是

  canActivate(): Observable<boolean> {
    return this.store$.select(appState => appState.auth.authUser)
      .pipe(map(authUser => {
        if (!authUser) {
          this._router.navigate(['route-to-your-login-page'])
        }
        return authUser;
      }))
  }

简单,应该工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM