Route guard для аутентификации в хранилище ngrx - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь создать AuthGuard, чтобы проверить, может ли пользователь получить доступ к маршруту, иначе, перенаправить на страницу входа в систему.Я хочу вернуть Observable<Boolean|UrlTree> из метода canActivate.Вот что у меня есть.

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

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

Однако я не совсем уверен, как / где я могу излучать UrlTree из наблюдаемого для перенаправления на /login, так как я новичок в этом целомвещь, особенно rxjs.Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 12 февраля 2019

Может быть, просто

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

Просто и должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...