从URL加载KeyCloak配置



keycloak 3.2 JavaScript适配器文档说您可以使用以下方式实例化KeyCloak对象

var keycloak = Keycloak('http://localhost:8080/myapp/keycloak.json'));

但是,当我尝试这样做时,看起来我的keycloak.config文件在我最终以:

的情况下没有属性设置。
Uncaught TypeError: Cannot read property 'charAt' of undefined
  at getRealmUrl (keycloak.js:482)
  at Keycloak.kc.createLoginUrl (keycloak.js:233)
  at Object.login (keycloak.js:897)
  at Keycloak.kc.login (keycloak.js:205)
  at doLogin (keycloak.js:121)
  at onLoad (keycloak.js:144)
  at Object.processInit [as successCallback] (keycloak.js:187)
  at Object.setSuccess (keycloak.js:771)
  at XMLHttpRequest.req.onreadystatechange (keycloak.js:598)
  at XMLHttpRequest.wrapFn [as __zone_symbol___onreadystatechange] (zone.js:1056)

但是,当我使用浏览器访问http://localhost:8080/myapp/keycloak.json时,我会得到:

{
  url: 'http://keycloak-server/auth',
  realm: 'myrealm',
  clientId: 'myapp'
}

,如果我用

实例化keycloak对象
var keycloak = Keycloak({
   url: 'http://keycloak-server/auth',
   realm: 'myrealm',
   clientId: 'myapp'
});

一切正常。

这是一个钥匙库错误,还是我缺少什么?

KeyCloak使用不同格式,无论您从其URL加载config还是直接到构造函数...

如果您通过其URL加载它,则必须为:

{
  auth-server-url: 'http://keycloak-server/auth',
  realm: 'myrealm',
  resource: 'myapp'
}

而不是

{
  url: 'http://keycloak-server/auth',
  realm: 'myrealm',
  clientId: 'myapp'
}

最新更新