我创建了领域和客户端。keycloak json放置在根文件夹中。但我还是会犯这样的错误
Cannot read property 'keycloak-token' of undefined
TypeError: Cannot read property 'keycloak-token' of undefined at SessionStore.get (C:\Users\...\node_modules\keycloak-connect\stores\session-store.js:24:58)var session = require('express-session');
var Keycloak = require('keycloak-connect');
var memoryStore = new session.MemoryStore();
var keycloak = new Keycloak({ store: memoryStore });发布于 2019-11-10 14:43:04
当您设置app.use(keycloak.middleware())而不配置会话存储时,您将得到此错误。keycloak-connect库正在尝试从尚未配置的会话中读取keycloak-token值。您可以通过提供一个Authorization头(例如Authorization: Bearer 123 )来避免错误,但是在使用会话存储时,解决方案是配置它。
有关完整的示例,请参阅项目依赖项中的node_modules/keycloak-connect/example/index.js。在下面的路由处理程序中使用资源保护使用多个中间件的最小示例。
然而,如果是建议,即:
MemoryStore,不是专门为生产环境设计的。在大多数情况下,它都会泄漏内存,不会扩展到单个进程,而是用于调试和开发。
const express = require('express')
const app = express()
const session = require('express-session');
const Keycloak = require('keycloak-connect');
var memoryStore = new session.MemoryStore();
var keycloak = new Keycloak({ store: memoryStore });
// Configure session
app.use(session({
secret: 'mySecret',
resave: false,
saveUninitialized: true,
store: memoryStore
}));
// Attach middleware
app.use(keycloak.middleware());
// Attach route handler for home page
app.get('/', keycloak.protect(), (req, res, next) => {
res.json({status: 'ok'})
})
// Start server
app.listen(3005)https://stackoverflow.com/questions/57095450
复制相似问题