min*_*rse 8 node.js cors express keycloak
我试图让nodeJS keycloak适配器与我的Express应用程序一起工作,但是当它尝试重定向到我用keycloak中间件保护的路由的登录页面时遇到了CORS问题:
XMLHttpRequest无法加载 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.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.原产地" 的http://本地主机:5001 "因此不允许访问.
在我的keycloak客户端设置中,我在Web Origins配置部分添加了单个值'*'.
我已经使用节点CORS库也使我的节点Express应用程序CORS,这明确指导下在这里
var cors = require('cors'),
app = express();
app.use(cors());
app.options('*', cors()); //enable for all pre-flight requests
Run Code Online (Sandbox Code Playgroud)
我使用版本3.2.1的keycloak以防万一(我看到一个新版本作为RC)
有没有人遇到类似问题并设法解决?我一直在挖掘许多JBOSS邮件列表线程和其他堆栈溢出,所有似乎都建议它就像在keycloak管理站点上为客户端的web origin ins config部分添加'*'条目一样简单,但事实并非如此我.
谢谢
小智 8
我也在mindparse上致力于这个问题。
我认为这里的关键问题是,尽管密钥库服务器已在密钥库管理门户中正确配置了“ Web Origins”设置,但密钥库服务器没有响应任何ACCESS-CONTROL-ALLOW-ORIGIN标头。
该过程更深入的流程是:
是的,必须为配置的客户端正确设置 Web 起源,但它也有一些陷阱,因为“+”设置取决于其他值。
例如,我的本地测试配置错误:
Root URL: http://localhost:3000/
Valid redirect URIs: *
Web Origins: +
Run Code Online (Sandbox Code Playgroud)
...并且由于像您所描述的 CORS 问题而失败。
问题在于其他两个设置,因此这是正确的并且现在可以使用:
Root URL: http://localhost:3000
Valid redirect URIs: /*
Web Origins: +
Run Code Online (Sandbox Code Playgroud)
(KeyCloak UI 在很多方面都是一场可用性噩梦,在我看来,这只是一个陷阱)
| 归档时间: |
|
| 查看次数: |
7641 次 |
| 最近记录: |