gpt4 book ai didi

angular - 使用 ngrx 存储进行身份验证的路由防护

转载 作者:行者123 更新时间:2023-12-02 20:05:59 25 4
gpt4 key购买 nike

我正在尝试创建一个 AuthGuard检查用户是否可以访问路由,否则重定向到登录 View 。我想返回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。预先感谢您的帮助。

最佳答案

也许只是

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

简单且应该有效

关于angular - 使用 ngrx 存储进行身份验证的路由防护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54650204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com