【发布时间】:2020-02-10 11:25:56
【问题描述】:
我在 Angular 应用程序中使用 NGRX,并且正在尝试使用身份验证保护。当应用程序启动时,我调度一个从服务器(firebase)获取身份验证状态的操作。问题是,如果我直接访问一个由 auth guard 保护的链接,默认的 auth 状态为 false,因此它会被返回并重定向到登录页面。
这是我的 canActivate 方法
canActivate() {
return this.store.select(fromAuth.getAuthenticatedStatus).pipe(
//filter(isAuth => isAuth == true || isAuth == false),
take(1),
map((isAuth: boolean) => isAuth),
catchError(() => of(false))
)
}
有没有办法等到身份验证状态从服务器返回后再检查商店的身份验证状态?我尝试过过滤并删除 take 运算符,但似乎没有效果。
我不想在身份验证守卫中调用服务器,因为我不希望它在每次切换页面时检查服务器。
【问题讨论】: