4.2. 使用方法
- 实例化 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 });
const session = require('express-session');
const Keycloak = require('keycloak-connect');
const memoryStore = new session.MemoryStore();
const keycloak = new Keycloak({ store: memoryStore });
安装 express-session 依赖项:
npm install express-session
npm install express-session
要启动 server.js 脚本,请在 package.json 的"scripts"部分中添加以下内容:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
现在,我们可以使用以下命令运行我们的服务器:
npm run start
npm run start
默认情况下,这将找到名为 keycloak.json 的文件以及应用程序的主可执行文件(在 root 文件夹中),以初始化红帽构建的 Keycloak 特定设置,如公钥、域名、各种 URL。
在这种情况下,需要红帽构建的 Keycloak 部署来访问红帽构建的 Keycloak 管理控制台。
请访问如何使用 Podman 或 Docker部署红帽构建的 Keycloak 管理控制台的链接
现在,我们可以通过访问 Keycloak Admin Console keycloak.json 文件,→ 选择您的客户端
将下载的文件粘贴到项目的根目录上。
使用此方法实例化会导致所有合理的默认值。另外,也可提供配置对象,而不是 keycloak.json 文件:
应用程序也可以使用以下方法将用户重定向到首选身份提供程序:
const keycloak = new Keycloak({ store: memoryStore, idpHint: myIdP }, kcConfig);
const keycloak = new Keycloak({ store: memoryStore, idpHint: myIdP }, kcConfig);
- 配置 Web 会话存储
-
如果要使用 Web 会话来管理服务器端状态进行身份验证,您需要使用至少一个
store参数初始化Keycloak (…),传递express-session使用的实际会话存储。
- 传递自定义范围值
-
默认情况下,范围值
openid作为查询参数传递给红帽构建的 Keycloak 登录 URL,但您可以添加额外的自定义值:
const keycloak = new Keycloak({ scope: 'offline_access' });
const keycloak = new Keycloak({ scope: 'offline_access' });