angular - Keycloak-angular : access/account fails with 403 error and CORS message

标签 angular cors angular8 keycloak

我正在使用 angular-keycloak 7.1.0 和 keycloak 8.0.2(和 keycloak-js 8.0.2)。 我使用客户端创建了一个 openIdConnect 领域,配置了访问类型:公共(public)和细粒度的 OpenID 连接配置以创建 ES256 JWT(JSON Web token )。

当我尝试通过我的 Ionic-Angular Web 应用程序(Chrome、Safari)登录时,如果用户尚未登录,则会显示 keycloak 登录表单。提交凭据后,/token 端点被成功调用并响应预期的 JWT。

但随后 keycloak-angular-lib 调用了'http://localhost:8080/auth/realms/REALM_NAME/account ' 访问用户配置文件,它提供:

Access to XMLHttpRequest at 'http://localhost:8080/auth/realms/REALM_NAME/account' from origin 
'http://localhost:1337' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is 
present on the requested resource.

更多提示:

  • 我已经尝试了所有 keycloak 客户端配置的变体,包括 * 和 +、Web 来源的相对和绝对路径以及有效的重定向 URI。

  • /token 请求工作正常。

  • 我对客户端范围映射器进行了多项更改,尤其是配置文件映射器。

  • 我可以通过postman访问/account路径

最佳答案

我有类似的问题,调用配置文件请求是 CORS 错误的原因

KeycloakService.loadUserProfile()

如前所述,在客户端范围内将“Full Scope allowed”设置为 true 解决了问题,但这不是我的首选解决方案,因为它添加了不需要的 Angular 色和受众。此外,由于组织政策,我无权访问帐户客户端,因此无法在我的客户端范围内引用“查看配置文件” Angular 色。

但是在我的例子中,用用户信息替换对用户个人资料的调用解决了这个问题,因为它避免了对帐户客户端的调用

KeycloakService.getKeycloakInstance().loadUserInfo()

关于angular - Keycloak-angular : access/account fails with 403 error and CORS message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60437658/

相关文章:

javascript - 错误: Cannot find module './models/user'

angular - 如何观察rxjs中的属性变化?

validation - Angular 2 - 自定义验证器语法

angular - 数据未加载到 Angular 8 中的输入字段

angular - Angular 8 组件中数据访问的奇怪之处

angular - 调整表列大小时防止排序触发器

javascript - ReactJS API 数据获取 CORS 错误

Java Spring Controller 拒绝除 GET 之外的所有请求

ajax - 使用Google Chrome的xmlHttpRequest时拒绝设置不安全 header "Origin"

ngx-translate 页面加载时短暂延迟