【问题标题】:Route guard for authentication with ngrx store使用 ngrx 存储进行身份验证的路由保护
【发布时间】:2019-02-12 21:49:02
【问题描述】:

我正在尝试创建一个AuthGuard 来检查用户是否可以访问路由,否则,重定向到登录视图。我想从 canActivate 方法。这是我目前所拥有的。

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

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

但是,我不确定如何/在哪里可以从 observable 发出 UrlTree 以重定向到 /login,因为我对这一切都是新手,特别是 rxjs。提前感谢您的帮助。

【问题讨论】:

    标签: angular rxjs ngrx angular-route-guards


    【解决方案1】:

    也许只是

      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;
          }))
      }
    

    简单,应该可以工作

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2020-05-10
      • 2020-02-10
      • 1970-01-01
      • 2021-11-07
      • 2013-03-27
      • 1970-01-01
      • 2018-05-21
      • 2013-12-11
      相关资源
      最近更新 更多