如何动态调用多个realm?
How to call multiple realms dynamically?
我需要根据在浏览器中输入的租户名称调用多个领域。现在我们正在做的是根据租户名称创建不同的 JSON 文件。但我需要直接从 Keycloak 服务器调用 keycloak.json 而不是放置虚拟 json.
前端使用的是Angular7.
所以这是一个可以通过对当前设计进行一些更改来实现的解决方案
第一个
用户将输入 url 类似 https://<IP>:<PORT>/<GUI-PATH>?tenantId=<TenatID>
现在在你的 Java 脚本代码中调用 rest api 这将为你提供 realmname/client-id
的详细信息和其他 keycloak 相关信息
将此信息传递给您的 keycloak.js 适配器,keycloak.js
将检查所有详细信息并重定向到登录页面。
初始化 Keycloak 和 bootstrap 应用程序
function loadApp(keyCloakObj) {
var script = document.createElement('script');
script.onload = function(){
initiializeApp(keyCloakObj)
}
script.src = keycloakObj.url.split("auth")[0] + "auth/js/keycloak.js";
script.onerror = function () {
var script = document.createElement('script');
script.onload = function(){
initiializeApp(keyCloakObj)
}
script.src = "app/auth/keycloak.js"
document.head.appendChild(script);
}
document.head.appendChild(script);
}
我只是分享基本代码,由于版权问题无法分享完整的代码流程。
我需要根据在浏览器中输入的租户名称调用多个领域。现在我们正在做的是根据租户名称创建不同的 JSON 文件。但我需要直接从 Keycloak 服务器调用 keycloak.json 而不是放置虚拟 json.
前端使用的是Angular7.
所以这是一个可以通过对当前设计进行一些更改来实现的解决方案
第一个
用户将输入 url 类似 https://<IP>:<PORT>/<GUI-PATH>?tenantId=<TenatID>
现在在你的 Java 脚本代码中调用 rest api 这将为你提供 realmname/client-id
的详细信息和其他 keycloak 相关信息
将此信息传递给您的 keycloak.js 适配器,keycloak.js
将检查所有详细信息并重定向到登录页面。
初始化 Keycloak 和 bootstrap 应用程序
function loadApp(keyCloakObj) {
var script = document.createElement('script');
script.onload = function(){
initiializeApp(keyCloakObj)
}
script.src = keycloakObj.url.split("auth")[0] + "auth/js/keycloak.js";
script.onerror = function () {
var script = document.createElement('script');
script.onload = function(){
initiializeApp(keyCloakObj)
}
script.src = "app/auth/keycloak.js"
document.head.appendChild(script);
}
document.head.appendChild(script);
}
我只是分享基本代码,由于版权问题无法分享完整的代码流程。