keycloak.js 与应用程序捆绑时出现错误,但其他情况下没有
Error when keycloak.js is bundled with application but not otherwise
我在使用 keycloak.js、
时遇到以下问题
场景 1:
在我的应用程序 index.html(捆绑在 JAR 文件中并部署在 Jetty 中)中,我有以下代码:
<script src="keycloak.js"></script>
<script>
var keycloak = Keycloak({
"realm": "master",
"clientId": "client1",
"auth-server-url": "http://<<keycloak-server-ip>>:<<port>>/auth",
"public-count": true
});
keycloak.init({
onLoad: 'login-required'
}).success(function () {
alert("login success");
});
</script>
我在 Keycloak 服务器中有以下客户端配置
Client Protocol - openid-connect
Access Type - public
Standard Flow Enabled - ON
Implicit Flow Enabled - OFF
Direct Access Grants Enabled - ON
Authorization Enabled - OFF
Root URL -
Valid Redirect URIs - http://<<myapplicationIP>>:<<myapplicationPort>>/admin/*
Base URL - http://<<myapplicationIP>>:<<myapplicationPort>>/admin
Admin URL -
Web Origins -
这个配置,第一次打的时候
http://<myapplicationIP>:<myapplicationPort>/admin/
,
我被重定向到
http://<<myapplicationIP>>:<<myapplicationPort>>/realms/master/protocol/openid-connect
/auth?client_id=client1&redirect_uri=http%3A%2F%2F<<myapplicationIP>>%3A<<myapplicationPort>>%2Fadmin%2F&state=c524eb6c-9245-4f82-87e9-e767dd733b0d&nonce=760809b5-b2d5-4c3e-9d76-40cd43bdef0d&response_mode=fragment&response_type=code&scope=openid
我得到 404,这是预期的,因为 keycloak 正试图重定向到
http://<<myapplicationIP>>:<<myapplicationPort>>/realms/...
我的申请中不存在。
场景二:
当我执行与场景 1 相同的操作时,除以下内容外,一切正常。
<script src="http://<<keycloakServerIP>>:<<keycloakServerPort>>/auth/js/keycloak.js"></script>
那么,捆绑 keycloak.js 和在 运行 时加载它在操作上有什么不同?
使用 url
而不是 auth-server-url
,这里也有答案:http://lists.jboss.org/pipermail/keycloak-user/2017-July/011109.html
我在使用 keycloak.js、
时遇到以下问题场景 1:
在我的应用程序 index.html(捆绑在 JAR 文件中并部署在 Jetty 中)中,我有以下代码:
<script src="keycloak.js"></script>
<script>
var keycloak = Keycloak({
"realm": "master",
"clientId": "client1",
"auth-server-url": "http://<<keycloak-server-ip>>:<<port>>/auth",
"public-count": true
});
keycloak.init({
onLoad: 'login-required'
}).success(function () {
alert("login success");
});
</script>
我在 Keycloak 服务器中有以下客户端配置
Client Protocol - openid-connect
Access Type - public
Standard Flow Enabled - ON
Implicit Flow Enabled - OFF
Direct Access Grants Enabled - ON
Authorization Enabled - OFF
Root URL -
Valid Redirect URIs - http://<<myapplicationIP>>:<<myapplicationPort>>/admin/*
Base URL - http://<<myapplicationIP>>:<<myapplicationPort>>/admin
Admin URL -
Web Origins -
这个配置,第一次打的时候
http://<myapplicationIP>:<myapplicationPort>/admin/
,
我被重定向到
http://<<myapplicationIP>>:<<myapplicationPort>>/realms/master/protocol/openid-connect
/auth?client_id=client1&redirect_uri=http%3A%2F%2F<<myapplicationIP>>%3A<<myapplicationPort>>%2Fadmin%2F&state=c524eb6c-9245-4f82-87e9-e767dd733b0d&nonce=760809b5-b2d5-4c3e-9d76-40cd43bdef0d&response_mode=fragment&response_type=code&scope=openid
我得到 404,这是预期的,因为 keycloak 正试图重定向到
http://<<myapplicationIP>>:<<myapplicationPort>>/realms/...
我的申请中不存在。
场景二:
当我执行与场景 1 相同的操作时,除以下内容外,一切正常。
<script src="http://<<keycloakServerIP>>:<<keycloakServerPort>>/auth/js/keycloak.js"></script>
那么,捆绑 keycloak.js 和在 运行 时加载它在操作上有什么不同?
使用 url
而不是 auth-server-url
,这里也有答案:http://lists.jboss.org/pipermail/keycloak-user/2017-July/011109.html