簡體   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