gpt4 book ai didi

node.js - 重定向到登录时出现 Keycloak CORS 问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:33 25 4
gpt4 key购买 nike

我正在尝试获取 nodeJS keycloak adapter使用我的 Express 应用程序,但当它尝试重定向到我使用 keycloak 中间件保护的路由的登录页面时,我遇到了 CORS 问题:

XMLHttpRequest cannot load http://192.168.132.44:8080/auth/realms/Actora/protocol/openid-connect/auth?client_id=actora-test&state=0e9c9778-c41b-4aa8-8052-d0f0125045ac&redirect_uri=http%3A%2F%2Flocalhost%3A5001%2Fauth%2Fchecktoken%3Fauth_callback%3D1&scope=openid&response_type=code. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5001' is therefore not allowed access.

在我的 keycloak 客户端设置中,我在 Web Origins 配置部分添加了一个值“*”。

我还使用 node cors 库在我的 node express 应用程序上启用了 cors,遵循此 express 指南 here

var cors =  require('cors'),
app = express();

app.use(cors());
app.options('*', cors()); //enable for all pre-flight requests

我使用 3.2.1 版的 keycloak 以防有任何不同(我看到新版本作为 RC 发布)

有没有人遇到过类似的问题并设法解决了?我一直在挖掘许多 JBOSS 邮件列表线程和其他 stackoverflows,并且所有这些似乎都表明它就像在 keycloak 管理站点上为客户端的 web origins 配置部分添加“*”条目一样简单,但事实并非如此我。

谢谢

最佳答案

我也在用 mindparse 解决这个问题。

我认为这里的关键问题是 keycloak 服务器没有响应任何 ACCESS-CONTROL-ALLOW-ORIGIN header ,尽管他已经在 keycloak 管理门户中正确配置了“web Origins”设置。

更深入的流程是:

  1. 用户尝试调用 Node express 服务器上的 key 斗篷安全路由
  2. Keycloak 中间件检测到用户未通过身份验证,并且使用 302(重定向)响应请求到托管的自定义登录页面通过 keycloak 服务器。
  3. 浏览器向keycloak服务器发送一个OPTIONS请求来检查它是否是因为这是一个跨源请求。
  4. keycloak 服务器响应不包括 ACCESS-CONTROL-ALLOW-ORIGIN header 告诉浏览器它有权进行此操作请求。
  5. 然后浏览器读取此响应,因此不会进行后续操作向上请求,因为它没有通过访问控制允许来源检查

关于node.js - 重定向到登录时出现 Keycloak CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46220566/

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