How to fix 'TypeError: Cannot read property 'keycloak-token' of undefined' error in javascript?
How to fix 'TypeError: Cannot read property 'keycloak-token' of undefined' error in javascript?
我正在尝试在我的节点项目中使用 keycloak,但我总是收到以下消息:无法读取未定义的 属性 'keycloak-token'。
在此之前,我启动了 keycloak,我创建了一个新领域 'Test' 和一个新用户 'id_a',为此我设置了一个新密码。我可以使用 keycloak 访问该帐户,但我不能使用我的代码。你能帮帮我吗?
var session = require('express-session');
var Keycloak = require('keycloak-connect');
const express = require('express');
var memoryStore = new session.MemoryStore();
let kcConfig = {
clientId: "id_a",
bearerOnly: true,
serverUrl: 'http://localhost:8080/auth',
realm: 'Test'
};
let keycloak = new Keycloak({ store: memoryStore }, kcConfig);
var app = express();
app.use( keycloak.middleware() );
app.get( '/complain', keycloak.protect(), function(req, res) {
res.send('hello world');
});
app.listen(3001, function(){
console.log('Server started on port 3001...')
});
输出是:'TypeError: Cannot read 属性 'keycloak-token' of undefined' 我期待你好世界
客户端不是有密码的用户账号,是你做的测试领域的客户端。创建一个新客户端,将客户端 ID 设置为 'node-backend' 之类的内容,然后将 kConfig clientId 配置为 'node-backend'.
客户端是应用程序,例如 Node,或 Angular。
我遇到了同样的问题,但现在可以了。您需要在 运行 keycloak 中间件之前实例化一个会话。缺失的一段代码如下:
// Create a session-store to be used by both the express-session
// middleware and the keycloak middleware.
var memoryStore = new session.MemoryStore();
app.use(session({
secret: 'some secret',
resave: false,
saveUninitialized: true,
store: memoryStore
}));
// Provide the session store to the Keycloak so that sessions
// can be invalidated from the Keycloak console callback.
//
// Additional configuration is read from keycloak.json file
// installed from the Keycloak web console.
var keycloak = new Keycloak({
store: memoryStore
});
app.use(keycloak.middleware({
logout: '/logout',
admin: '/'
}));
查看 nodeJS 的 keycloak 快速入门以获取完整代码参考:
https://github.com/keycloak/keycloak-quickstarts/blob/latest/service-nodejs/app.js
我正在尝试在我的节点项目中使用 keycloak,但我总是收到以下消息:无法读取未定义的 属性 'keycloak-token'。
在此之前,我启动了 keycloak,我创建了一个新领域 'Test' 和一个新用户 'id_a',为此我设置了一个新密码。我可以使用 keycloak 访问该帐户,但我不能使用我的代码。你能帮帮我吗?
var session = require('express-session');
var Keycloak = require('keycloak-connect');
const express = require('express');
var memoryStore = new session.MemoryStore();
let kcConfig = {
clientId: "id_a",
bearerOnly: true,
serverUrl: 'http://localhost:8080/auth',
realm: 'Test'
};
let keycloak = new Keycloak({ store: memoryStore }, kcConfig);
var app = express();
app.use( keycloak.middleware() );
app.get( '/complain', keycloak.protect(), function(req, res) {
res.send('hello world');
});
app.listen(3001, function(){
console.log('Server started on port 3001...')
});
输出是:'TypeError: Cannot read 属性 'keycloak-token' of undefined' 我期待你好世界
客户端不是有密码的用户账号,是你做的测试领域的客户端。创建一个新客户端,将客户端 ID 设置为 'node-backend' 之类的内容,然后将 kConfig clientId 配置为 'node-backend'.
客户端是应用程序,例如 Node,或 Angular。
我遇到了同样的问题,但现在可以了。您需要在 运行 keycloak 中间件之前实例化一个会话。缺失的一段代码如下:
// Create a session-store to be used by both the express-session
// middleware and the keycloak middleware.
var memoryStore = new session.MemoryStore();
app.use(session({
secret: 'some secret',
resave: false,
saveUninitialized: true,
store: memoryStore
}));
// Provide the session store to the Keycloak so that sessions
// can be invalidated from the Keycloak console callback.
//
// Additional configuration is read from keycloak.json file
// installed from the Keycloak web console.
var keycloak = new Keycloak({
store: memoryStore
});
app.use(keycloak.middleware({
logout: '/logout',
admin: '/'
}));
查看 nodeJS 的 keycloak 快速入门以获取完整代码参考: https://github.com/keycloak/keycloak-quickstarts/blob/latest/service-nodejs/app.js