https://github.com/oada/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
https://github.com/oada/oada-lookup-js
oada oada-configuration openid-configuration
Last synced: 10 months ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/oada/oada-lookup-js
- Owner: OADA
- License: apache-2.0
- Created: 2014-10-01T20:39:24.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-02-04T10:24:14.000Z (over 3 years ago)
- Last Synced: 2025-07-07T17:51:16.371Z (11 months ago)
- Topics: oada, oada-configuration, openid-configuration
- Language: TypeScript
- Homepage: http://openag.io
- Size: 1.59 MB
- Stars: 0
- Watchers: 7
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @oada/lookup
[](https://coveralls.io/r/OADA/oada-lookup-js?branch=master)
[](https://www.npmjs.com/package/@oada/lookup)
[](https://npmjs.org/package/@oada/lookup)
[](https://github.com/prettier/prettier)
[](LICENSE)
JavaScript utility library to lookup OADA documents such as [Well-Known (RFC 5785)][well-known] resource, e.g., oada-configuration, [openid-configuration][],
etc, and public OADA client registrations.
## Getting Started
### Installation
The library can be installed with `yarn` using
```sh
yarn add @oada/lookup
```
### Running the tests, coverage, and style checks
The libraries test can be ran with:
```sh
yarn test
```
### wellKnown(hostname, suffix, options, cb)
Fetch a [Well-Known (RFC 5785)][well-known] 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
```javascript
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
```javascript
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)][json-web-key-set] 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
```javascript
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)][well-known]
2. [OpenID Discovery](http://openid.net/specs/openid-connect-discovery-1_0.html)
[well-known]: http://tools.ietf.org/html/rfc5785
[openid-configuration]: http://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata
[`suffix`]: http://tools.ietf.org/html/rfc5785#section-5.1.1 'RFC5785 Section 5.1.1'
[json-web-key-set]: https://tools.ietf.org/html/draft-ietf-jose-json-web-key-33#page-10