Express 快捷路线中未维护密钥斗篷授予令牌

Express 快捷路线中未维护密钥斗篷授予令牌,express,routes,token,keycloak,grant,Express,Routes,Token,Keycloak,Grant,我想用keydove来验证用户身份并保护我的快递路线。对于登录路径,我从授权管理器中获取一个keydeport令牌,并将其存储在keydeport中。目前,我正在使用temp帐户直接登录: ... let memoryStore = session.MemoryStore; let kcConfig = {...}; let keycloak = new Keycloak({ store : memoryStore }, kcConfig); /* Route */ app.get('/log

我想用keydove来验证用户身份并保护我的快递路线。对于登录路径,我从授权管理器中获取一个keydeport令牌,并将其存储在keydeport中。目前,我正在使用
temp
帐户直接登录:

...
let memoryStore = session.MemoryStore;
let kcConfig = {...};
let keycloak = new Keycloak({ store : memoryStore }, kcConfig);

/* Route */
app.get('/login', function (req, res) {
     keycloak.grantManager.obtainDirectly('temp', 'temp').then(grant => {
         keycloak.storeGrant(grant, req, res);
     }, error => {
         console.log("ERROR");
     });

     // Send some default info back
     res.send({user: "me", token: "nnn"});
     res.end();
});
执行此操作后,req.session具有一个“keydepose令牌”属性。但是,当我尝试导航到受保护的路由时,例如

app.use('/app', keycloak.protect(), app);
然后,请求会话['keydape-token']消失了,我仍然被重定向到keydape登录页面。在我登录那里之后,我的令牌似乎被设置好了,我可以按照我的意愿访问受保护的路由


为什么登录路由中来自授权管理器的会话令牌没有像来自
keydove.protect()
route protector()的会话令牌那样共享和维护?

您也应该安装keydove中间件

app.use(keycloak.middleware({
    logout: '/logout',
    admin: '/'
}));

您还应该安装keydape中间件

app.use(keycloak.middleware({
    logout: '/logout',
    admin: '/'
}));