Route guard для аутентификации в хранилище ngrx
Я пытаюсь создать 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 ответ
Может просто
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;
}))
}
Просто и должно работать