Skip to content

JavaScript utility library to lookup OADA documents such as Well-Known (RFC 5785) resource, e.g., oada-configuration, openid-configuration, etc, and public OADA client registrations

License

Notifications You must be signed in to change notification settings

abalmos/oada-lookup-js

 
 

Repository files navigation

Build Status Coverage Status Dependency Status License

oada-lookup-js

JavaScript utility library to lookup OADA documents such as Well-Known (RFC 5785) resource, e.g., oada-configuration, openid-configuration, etc, and public OADA client registrations.

Getting Started

Installation

The library can be installed with npm using

$ npm install oada-lookup

Running the tests, coverage, and style checks

The libraries test can be ran with:

$ npm test

The coverage report is generated by:

$ npm run cover

Gulp runs jshint (lint) and jscs (style) with:

$ gulp lint
$ gulp style

wellKnown(hostname, suffix, options, cb)

Fetch a Well-Known (RFC 5785) Resource. The hostname will automatically be parsed from any URL.

Parameters

hostname {String} Hostname (or URL) hosting the Well-Known resource being requested. Sub-domains and ports are be persevered; Protocol, path, query parameters, and hash are dropped. It is assumed that the Well-Known resource is hosted with TLS (https) Pull Request appreciated

suffix {String} Well-Known resource suffix being requested.

options {Object} containing at least the following properties:

  • timeout {Number} Default: 1000 Timeout before HTTP request fails in ms.

cb {Function} Result callback. It takes the form function(err, resource) {}.

Usage Example

var lookup = require('oada-lookup');

var options = {
  timeout: 500
};

lookup.wellKnown('provider.oada-dev.com', 'oada-configuration', options,
  function(err, resource) {
    console.log(err);
    console.log(resource);
  });

clientRegistration(clientId, options, cb)

Fetch a client registration from an OADA client id.

Parameters

clientId {String} The OADA client id to lookup the client registration for. It takes a form similar to email: id@domain.

options {Object} containing at least the following properties:

  • timeout {Number} Default: 1000 Timeout before HTTP request fails in ms.

cb {Function} Result callback. It takes the form function(err, registration){}.

Usage Example

var lookup = require('oada-lookup');

var options = {
  timeout: 500
};

lookup.clientRegistration('[email protected]', options,
  function(err, registration) {
    console.log(err);
    console.log(registration);
  });

jwks(uri, options, cb)

Fetch a Json Web Key Set (JWKS) from an URI.

Parameters

uri {String} The URI containing the desired JWKS document. For example, the value of the OpenID Connect openid-configuration jwks_uri property.

options {Object} containing at least the following properties:

  • timeout {Number} Default: 1000 Timeout before HTTP request fails in ms.

cb {Function} Result callback. It takes the form function(err, jwks){}.

Usage Example

var lookup = require('oada-lookup');

var options = {
  timeout: 500
};

lookup.jwks('provider.oada-dev.com/oidc/jwks', options,
  function(err, jwks) {
    console.log(err);
    console.log(jwks);
  });

References

  1. Defining Well-Known Uniform Resource Identifiers (URIs)
  2. OpenID Discovery

About

JavaScript utility library to lookup OADA documents such as Well-Known (RFC 5785) resource, e.g., oada-configuration, openid-configuration, etc, and public OADA client registrations

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%