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 });
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 管理控制台。
部署 Admin Console 后,我们已准备好通过访问红帽构建的 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' });