express-meshblu-auth

Express middleware for all meshblu auth styles


Keywords
meshblu, express
License
MIT
Install
npm install express-meshblu-auth@9.2.1

Documentation

Express Meshblu Authentication Middleware

Express middleware to support all meshblu auth styles

Build Status Code Climate Test Coverage npm version Gitter

Supported Auth Methods

  • cookies: request.cookies.meshblu_auth_uuid and request.cookies.meshblu_auth_token
  • headers: request.cookies.meshblu_auth_uuid and request.cookies.meshblu_auth_token
  • basic: Authorization: Basic c3VwZXItcGluazpwaW5raXNoLXB1cnBsZWlzaAo=
  • bearer: Authorization: Bearer c3VwZXItcGluazpwaW5raXNoLXB1cnBsZWlzaAo=

Example:

var express = require('express');
var MeshbluAuth = require('express-meshblu-auth');
var meshbluAuth = new MeshbluAuth({
  protocol: 'https',
  server: 'meshblu.octoblu.com',
  port: 443
});

var app = express();
// Retrieves the uuid & token from the request,
// validate them, then add them to request.meshbluAuth
app.use(meshbluAuth.auth());

// Retrieves the uuid & token from the request,
// validate them by retrieving the device, then:
// add credentials to request.meshbluAuth
// add device to request.meshbluDevice
app.use(meshbluAuth.get());

// Returns a 401 if no uuid & token were provided in the request
// Returns a 403 if the uuid & token provided were invalid
// calls next otherwise
// meshbluAuth.auth or meshbluAuth.get MUST BE CALLED FIRST in the middleware chain
app.use(meshbluAuth.gateway());

// Returns a 401 if no uuid & token were provided in the request
// Returns a 403 if the uuid & token provided were invalid
// Returns a 403 if the uuid given does not match the authorized uuid
// calls next otherwise
// meshbluAuth.auth or meshbluAuth.get MUST BE CALLED FIRST in the middleware chain
app.use(meshbluAuth.gatewayDevice('uuid'));

// Can be used instead of gateway. Redirects user if uuid & token were not
// provided or were not valid
app.use(meshbluAuth.gatewayRedirect('/login'));

app.use(function (request, response) {
  response.json({uuid: request.meshbluAuth.uuid, token: request.meshbluAuth.token});
});
app.listen(3333);