oada-client-discovery
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

oada-client-discovery-js

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

Getting Started

Installation

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

API

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.

Parameters

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": [
    "https://agcloud.com/redirect"
  ],
  "licenses": [
    "oada",
  ],
  "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)
Downloads
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 |