我正在尝试创建一个AuthGuard
,以检查用户是否可以访问路由,否则,将重定向到登录视图。我想从中返回Observable<Boolean|UrlTree>
canActivate
方法。这是我到目前为止所拥有的。
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.store$.select(appState => appState.auth.authUser)
.pipe(map(authUser => Boolean(authUser)));
}
但是,由于我不熟悉整个事物,尤其是rxjs,因此我不确定如何从可观察对象发出UrlTree并将其重定向到/login
。预先感谢您的帮助。
答案 0 :(得分:0)
也许只是
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;
}))
}
简单,应该可以工作