Skip to content

Latest commit

 

History

History
116 lines (94 loc) · 2.9 KB

File metadata and controls

116 lines (94 loc) · 2.9 KB

uPortal Open ID Connect

NPM Version Maven Central Build Status

A client side abstraction to efficiently get Open ID Connect tokens from uPortal

Installation

# install with npm
npm install @uportal/open-id-connect

# install with yarn
yarn add @uportal/open-id-connect

install with maven

<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>uportal__open-id-connect</artifactId>
    <version>{version number goes here}</version>
</dependency>

install with gradle

compile 'org.webjars.npm:uportal__open-id-connect:{version number goes here}'

Usage

use with ES5

var oidc = require("@uportal/open-id-connect");

// with a promise
oidc
  .default()
  .then(function(token) {
    console.log(token.encoded); // Raw JWT
    console.log(token.decoded); // parsed JSON
  })
  .catch(function(err) {
    console.error(err);
  });

// with a callback
oidc.default({}, function(err, token) {
  if (err) {
    console.error(err);
    return;
  }

  console.log(token.encoded);
  console.log(token.decoded);
});

use with ES6+

import oicd from '@uportal/open-id-connect';

// with default values
try {
  const {encoded, decoded} = await oidc();
  console.log(encoded);
  console.log(decoded);
} catch (err) {
  console.error(err);
}

// with options
try {
  const {encoded, decoded} = await oidc({
    userInfoApiUrl: '/uPortal/api/v5-1/userinfo',
    timeout: 5000,
    propertyTransforms: {
      example: JSON.parse
    }
  });
  console.log(encoded);
  console.log(decoded);
} catch (err) {
  console.error(err);
}

API

oidc(options, callback); //-> Promise
  • (optional) Options
    • (optional) string userInfoApiUrl - URL for Open ID Connect endpoint
    • (optional) number timeout - time until token should be renewed
    • (optional) object propertyTransforms - transforms to apply to specific properties
      • string key - name of property to be transformed
      • function value - function to apply to property
  • (optional) Callback
    • Error err - null if resonse is okay, error object otherwise
    • Object token - object with encoded and decoded keys
      • string encoded has the raw JSON Web Token
      • Object decoded has the parsed JSON object
  • Promise
    • Object resolve token object
      • string encoded has the raw JSON Web Token
      • Object decoded has the parsed JSON object
    • Error reject reason Promise was rejected