A client side abstraction to efficiently get Open ID Connect tokens from uPortal
# 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}'
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);
}
oidc(options, callback); //-> Promise
userInfoApiUrl
- URL for Open ID Connect endpointkey
- name of property to be transformedvalue
- function to apply to propertyerr
- null if resonse is okay, error object otherwisetoken
- object with encoded
and decoded
keys
encoded
has the raw JSON Web Tokendecoded
has the parsed JSON objectresolve
token object
encoded
has the raw JSON Web Tokendecoded
has the parsed JSON objectreject
reason Promise was rejected