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

OADA/oada-lookup-js

Repository files navigation

@oada/lookup

Coverage Status npm Downloads/week code style: prettier License

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 yarn using

yarn add @oada/lookup

Running the tests, coverage, and style checks

The libraries test can be ran with:

yarn test

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

import { wellKnown } from '@oada/lookup';

const options = {
  timeout: 500,
};

const resource = await wellKnown(
  'provider.oada-dev.com',
  'oada-configuration',
  options
);
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

import { clientRegistration } from '@oada/lookup';

const options = {
  timeout: 500,
};

const registration = await clientRegistration(
  'xJx82s@provider.oada-dev.com',
  options
);
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

import { jwks } from '@oada/lookup';

const options = {
  timeout: 500,
};

const JWKset = await jwks('provider.oada-dev.com/oidc/jwks', options);
console.log(JWKset);

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published