uPortal Open ID Connect
A client side abstraction to efficiently get Open ID Connect tokens from uPortal
Installation
npm install @uportal/open-id-connect
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");
oidc
.default()
.then(function(token) {
console.log(token.encoded);
console.log(token.decoded);
})
.catch(function(err) {
console.error(err);
});
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';
try {
const {encoded, decoded} = await oidc();
console.log(encoded);
console.log(decoded);
} catch (err) {
console.error(err);
}
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);
- (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