OADA (openag.io) client discovery middleware
Last updated 6 years ago by abalmos .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install oada-client-discovery 
SYNC missed versions from official npm registry.

Build Status Coverage Status Dependency Status License


Connect style middleware for OADA (openag.io) client discovery.

Getting Started


The library can be installed with npm using

$ npm install oada-client-discovery

Running the Examples

Minimal Example

See examples README

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


clientDiscovery(lookup, options)

Connect style middleware for OADA client discovery.

To eliminate a dependency on any particular storage system or database a lookup function that fetches client registrations must be provided by the caller.

CORS is required by OADA client discovery and therefore automatically enabled. See node-cors.


lookup {Function} that resolves a client registration from a client ID. It takes the form function(lookup, callback).

options {Object, Optional} possibly containing the following properties:

  • cors {Object} Options object for node-cors. Default: {}

Client Registration Object

An OADA client registration is a JSON document with at least the following properties:

  • clientId {String} client ID
  • redirectUrls {Array of Strings} Array of allowable OAuth 2.0 redirect URLs.
  • licenses {Array of Strings} Array of license names the client developer has agreed to.
  • keys {JSON Web Key (JWK) Set} containing the client's JWKs for use with OADA specific OAuth 2.0/OpenID Connect client secrets.
Example Client Registration
  "clientId": "123abc@agcloud.com",
  "redirectUrls": [
  "licenses": [
  "keys": [
      "kty": "RSA",
      "use": "sig",
      "alg": "RS256",
      "kid": "ad8alkjca38afvudsZA",
      "n": "AOtWalmH3vZ2q2Be ... SRQjYzxqpyVR9HEJYJ",
      "e": "AQAB",

Usage Example

var express = require('express');
var clientDiscovery = require('oada-client-discovery');

var app = express();

app.get('/clientDiscovery', clientDiscovery(
  function(clientId, cb) {
    clients.find({clientId: clientId}, function(err, clients) {
      if(err) { return cb(err); }

      cb(null, clients[0]);

Current Tags

  • 0.3.2                                ...           latest (6 years ago)

5 Versions

  • 0.3.2                                ...           6 years ago
  • 0.3.1                                ...           6 years ago
  • 0.2.0                                ...           6 years ago
  • 0.1.1                                ...           6 years ago
  • 0.1.0                                ...           6 years ago
Maintainers (1)
Today 0
This Week 1
This Month 1
Last Day 1
Last Week 0
Last Month 0
Dependencies (4)
Dev Dependencies (12)
Dependents (1)

Copyright 2014 - 2016 © taobao.org |