[keycloak-user] Authenticate a rest api using keycloak access token

Saransh Kumar skm.8896 at gmail.com
Mon Feb 27 06:44:38 EST 2017


Hello,

How to get user information like username,name, email etc. from the
keycloak token in server side node js REST API (secured through bearer auth
only )?
--------------------------------------------------------------------------------------------------------------------------------------------
*Code:*

var express = require('express');
var router = express.Router();
var app = express();
var cors = require('cors');
var Keycloak = require('keycloak-connect');
var session = require('express-session');
var memoryStore = new session.MemoryStore();
app.use(session({
  secret: 'c214ad7b-e4f9-4b11-9d79-d25084e7c721',
  resave: false,
  saveUninitialized: true,
  store: memoryStore
}));

var keycloak =new Keycloak({store: memoryStore});
app.use( keycloak.middleware({logout: '/logout', admin: '/',}));

router.options('/', cors());

/* GET users listing. */
//router.get('/',keycloak.protect(),function(req, res, next) {
router.get('/', cors(),function(req, res, next) {
    if (keycloak.protect())
    {
        // How to fetch userInfo here?
        res.send('Reached here!');
    }
    else
    {
        res.send('Failed to authenticate');
    }
});

module.exports = router;

------------------------------------------------------------------------------------------------------------------------------------------
Also, is there any method so that we can cache the user data from the token
assigned to a particular user, so that whenever request from the same user
comes again with the same token, we need not query keycloak about the user
information?

Thanks in advance
Saransh


More information about the keycloak-user mailing list