Angular 角形防护是否会导致密钥斗篷身份验证问题?

Angular 角形防护是否会导致密钥斗篷身份验证问题?,angular,keycloak,angular-router-guards,Angular,Keycloak,Angular Router Guards,我正在调查为什么在angular 9 KeyClock中重新加载应用程序页面时,它会在令牌请求上响应400错误。 我在家中插入了一个防护装置,用于检查用户是否拥有访问该应用程序的所有权限。 这是密码 canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlT

我正在调查为什么在angular 9 KeyClock中重新加载应用程序页面时,它会在令牌请求上响应400错误。 我在家中插入了一个防护装置,用于检查用户是否拥有访问该应用程序的所有权限。 这是密码

 canActivate(route: ActivatedRouteSnapshot,
              state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
    return this.authStore.pipe(
      select(selectInfoUser),
      filter(user => user !== null),
      switchMap(user => this.checkRole(route.data.allowedRoles)),
      switchMap(find => {
        if (!find) {
         throw find
        }
        return of(find)
      }),
      catchError(e => {
        this.router.navigate(['403'])
        return of(false)
      })
    )
  }
canActivate(路由:ActivatedRouteSnapshot,
状态:RouterStateSnashot):可观察的|承诺|布尔| UrlTree{
返回此.authStore.pipe(
选择(选择信息用户),
过滤器(用户=>用户!==null),
switchMap(用户=>this.checkRole(route.data.allowedRoles)),
开关映射(查找=>{
如果(!查找){
扔找
}
返回(查找)
}),
捕捉错误(e=>{
this.router.navigate(['403'])
返回(假)
})
)
}
在guard中,我恢复用户角色,因为我将它们放在ngrx存储中,等待一个有效值。 然后,我使用选择器检查用户是否具有所有必需的角色,并决定是将其传递还是发送到第403页

当我重新加载页面时,可能是这个防护导致了我的错误。 请注意应用程序的第一次启动,在使用它时,一切都正常工作,即使在开发中重新加载页面时,也要手动重新加载页面

最终的问题是,一个守卫是否可以中断或中断oidc身份验证流