Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'utilisation de keycloak

TypeError: Cannot read property 'keycloak-token' of undefined

    24 mai 2019 à 10:12:46

    Bonjour,

    J'essaie d'utiliser le module keycloak-connect via une application node.js.

    Voici mon code :

    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...')
    });


    Avant, j'ai lancé l'appli keycloak, j'ai créé le realm Test et j'ai créé l'utilisateur id_a auquel j'ai ajouté un mot de passe temporaire. J'arrive à me connecter à cet utilisateur via l'appli keycloak, mais je reçois l'erreur : "Cannot read property 'keycloak-token' of undefined
        at SessionStore.get (\mini_projet\node_modules\keycloak-connect\stores\session-store.js:26:18)" .

    Ca vient des lignes suivantes dans le fichier session-store.js :

    function SessionStore (store) {
      this.store = store;
    }
    
    SessionStore.TOKEN_KEY = 'keycloak-token';
    
    SessionStore.prototype.get = (request) => request.session[SessionStore.TOKEN_KEY];

    qui sont appelées par les lignes suivantes dans index.js du module keycloak-connect :

    function Keycloak (config, keycloakConfig) {
      // If keycloakConfig is null, Config() will search for `keycloak.json`.
    
      console.log("config1 : \n" + config.store);
      this.config = new Config(keycloakConfig);
    
      console.log("config2 : \n" + config.store);
    
      this.grantManager = new GrantManager(this.config);
    
      this.stores = [ BearerStore ];
    
      if (!config) {
        throw new Error('Adapter configuration must be provided.');
      }
    
      // Add the custom scope value
      this.config.scope = config.scope;
    
      if (config && config.store && config.cookies) {
        throw new Error('Either `store` or `cookies` may be set, but not both');
      }
    
      if (config && config.store) {
        console.log(config.store);
        this.stores.push(new SessionStore(config.store));
      } else if (config && config.cookies) {
        this.stores.push(CookieStore);
      }
    }

    Qqun pourrait m'aider svp ?


    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2019 à 17:02:59

      Did you ever solve this? I'm getting the same errors...
      • Partager sur Facebook
      • Partager sur Twitter

      Problème d'utilisation de keycloak

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown