我試圖讓nodeJS keycloak adapter與我的Express應用程序一起工作,但當它試圖重定向到我用keycloak中間件保護的路由的登錄頁面時遇到CORS問題: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。 對預檢請求的響應未通過訪問控制檢查:否 請求的 資源上存在「訪問控制 - 允許來源」標頭。原因'http://localhost:5001'因此不允許 訪問。
在我的keycloak客戶端設置中,我在Web起源配置部分添加了一個'*'值。
我也能使用節點CORS庫在我的節點Express應用程序CORS,這明確指導here
var cors = require('cors'),
app = express();
app.use(cors());
app.options('*', cors()); //enable for all pre-flight requests
我使用keycloak的3.2.1版本
的情況下,有什麼差別如下(我看到了新版本作爲RC)
有沒有人遇到類似的問題,並設法解決?我一直在挖掘很多JBOSS郵件列表線程和其他的stackoverflows,並且似乎都建議這麼做,就像在keycloak管理站點上爲客戶端的web起始配置部分添加'*'條目一樣簡單,但事實並非如此我。
謝謝
的'http://192.168.132.44:8080/auth/realms/Actora/protocol/openid-connect/auth'端點不是由您的節點應用程序提供的,對吧?它是由運行JBOSS的其他服務器提供的? – sideshowbarker
正確,那麼這是否意味着其他服務器需要某種形式的CORS啓用,即我們的keycloak正在運行的JBOSS? – mindparse
不應該不需要,你能否提供關於你的NodeJS應用程序的更多細節,你如何爲前端服務?或者是一個單獨的Web應用程序?你是否僅使用承載者? –