Express 快捷路线中未维护密钥斗篷授予令牌
我想用keydove来验证用户身份并保护我的快递路线。对于登录路径,我从授权管理器中获取一个keydeport令牌,并将其存储在keydeport中。目前,我正在使用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
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: '/'
}));