Keycloak 总是重定向到登录页面

问题描述

我正在使用 keycloak 实例登录前端并保护后端 API。在 aws 上的 linux 机器上部署后,我遇到了一个问题。通过使用 jwt 令牌访问 api,我不断被重定向登录页面。在本地运行良好。

我的客户是保密客户。我正在使用 client_id 和 _secret 来授权令牌调用。 jwt 令牌有效并成功生成。 我的 api 实现适用于 expressjs 和 keycloak-nodejs-connector:

    keycloakConfig = {
        serverUrl: 'https://keycloak.myserver.com/auth',realm: 'examplerealm',clientId: 'ui-client'
    };

   public init() {
        if (this.keycloak) {
            console.warn("Trying to init Keycloak again!");
            return this.keycloak;
        }
        else {
            console.log("Initializing Keycloak...");
            const memoryStore = new session.MemoryStore();
            // @ts-ignore
            this.keycloak = new Keycloak({ store: memoryStore },this.keycloakConfig );
            return this.keycloak;
        }
    }

我可以想象它取决于当前的 https 设置。我的 nodejs api 为 http 和 https(在本地使用自签名证书)提供了一个端点。在运行 keycloak 的服务器上,我使用 certbot 添加一个 Letencrypt 证书,并且在浏览器中一切正常。 Keycloak 由 docker-container jboss/keycloak 启动。

我很想弄清楚我当前的问题,非常感谢您的帮助:slight_smile:如果我错过了添加必要信息,请告诉我。 提前致谢。 多米尼克

解决方法

我找到了解决方案。 首先我更新到最新版本的keycloak-connect。他们提供了一个新的主要版本 12,似乎配置发生了变化。

其次是配置有问题。我深入研究了当前的配置对象并发现它应该是这样的:

StructType