4.3. 使用方法


实例化 Keycloak 类
Keycloak 类为配置和集成应用程序提供了一个中央点。最简单的创建涉及任何参数。

在项目的根目录中,创建名为 server.js 的文件并添加以下代码:

    const session = require('express-session');
    const Keycloak = require('keycloak-connect');

    const memoryStore = new session.MemoryStore();
    const keycloak = new Keycloak({ store: memoryStore });
Copy to Clipboard Toggle word wrap

安装 express-session 依赖项:

    npm install express-session
Copy to Clipboard Toggle word wrap

要启动 server.js 脚本,请在 package.json 的"scripts"部分中添加以下内容:

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js"
    },
Copy to Clipboard Toggle word wrap

现在,我们可以使用以下命令运行我们的服务器:

    npm run start
Copy to Clipboard Toggle word wrap

默认情况下,这将找到名为 keycloak.json 的文件以及应用程序的主可执行文件(在 root 文件夹中),以初始化红帽构建的 Keycloak 特定设置,如公钥、域名、各种 URL。

在这种情况下,需要红帽构建的 Keycloak 部署,以便您可以访问红帽构建的 Keycloak 管理控制台。

部署 Admin Console 后,我们已准备好通过访问红帽构建的 Keycloak Admin Console 客户端(左侧边栏) 选择您的 client Installation Format Option Keycloak OIDC JSON Download 来获取 keycloak.json 文件。

将下载的文件粘贴到项目的根目录上。

使用此方法实例化会导致所有合理的默认值。另外,也可提供配置对象,而不是 keycloak.json 文件:

    const kcConfig = {
        clientId: 'myclient',
        bearerOnly: true,
        serverUrl: 'http://localhost:8080',
        realm: 'myrealm',
        realmPublicKey: 'MIIBIjANB...'
    };

    const keycloak = new Keycloak({ store: memoryStore }, kcConfig);
Copy to Clipboard Toggle word wrap

应用程序也可以使用以下方法将用户重定向到首选身份提供程序:

    const keycloak = new Keycloak({ store: memoryStore, idpHint: myIdP }, kcConfig);
Copy to Clipboard Toggle word wrap
配置 Web 会话存储
如果要使用 Web 会话来管理服务器端状态进行身份验证,您需要使用至少一个 store 参数初始化 Keycloak (…​),传递 express-session 使用的实际会话存储。
    const session = require('express-session');
    const memoryStore = new session.MemoryStore();

    // Configure session
    app.use(
      session({
        secret: 'mySecret',
        resave: false,
        saveUninitialized: true,
        store: memoryStore,
      })
    );

    const keycloak = new Keycloak({ store: memoryStore });
Copy to Clipboard Toggle word wrap
传递自定义范围值
默认情况下,范围值 openid 作为查询参数传递给红帽构建的 Keycloak 登录 URL,但您可以添加额外的自定义值:
    const keycloak = new Keycloak({ scope: 'offline_access' });
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat