0
Keycloakを使用してユーザーを認証し、エクスプレスルートを保護したいと考えています。ログインルートでは、私はkeycloakに格納しているgrant managerからkeycloak-tokenを取得します。今、私が直接ログインするtemp
アカウントを使用していますについて:Keycloakグラントトークンがエクスプレスルートに維持されていません
...
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は「keycloakトークン」プロパティを持っています。しかし、保護されたルートに移動しようとすると、
app.use('/app', keycloak.protect(), app);
その後、そのreq.session [「keycloakトークン」]は消えていると私はまだKeycloakのログインページにリダイレクトしています。 私はそこにログインした後、私のトークンが設定されているように見えます。
ログインルートのグラントマネージャからのセッショントークンが、keycloak.protect()
ルートプロテクタのものと同じように共有され、維持されないのはなぜですか?