@compwright/express-oauth-server

OAuth provider for express

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
00Sep 13, 2018Jul 27, 2018Minified + gzip package size for @compwright/express-oauth-server in KB

Readme

Express OAuth Server Build Status

Complete, compliant and well tested module for implementing an OAuth2 Server/Provider with express in node.js.

This is the express wrapper for @compwright/oauth2-server.

Installation

$ npm install @compwright/express-oauth-server

Quick Start

The module provides two middlewares - one for granting tokens and another to authorize them. @compwright/express-oauth-server and, consequently oauth2-server, expect the request body to be parsed already. The following example uses body-parser but you may opt for an alternative library.

var bodyParser = require('body-parser');
var express = require('express');
var OAuthServer = require('@compwright/express-oauth-server');

var app = express();

app.oauth = new OAuthServer({
  model: {}, // See https://github.com/compwright/node-oauth2-server for specification
});

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(app.oauth.authorize());

app.use(function(req, res) {
  res.send('Secret area');
});

app.listen(3000);

Options

var options = { 
  useErrorHandler: false, 
  continueMiddleware: false,
}
  • useErrorHandler (type: boolean default: false)

    If false, an error response will be rendered by this component. Set this value to true to allow your own express error handler to handle the error.

  • continueMiddleware (type: boolean default: false)

    The authorize() and token() middlewares will both render their result to the response and end the pipeline. next() will only be called if this is set to true.

    Note: You cannot modify the response since the headers have already been sent.

    authenticate() does not modify the response and will always call next()

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.