gcframe-auth

0.1.2 • Public • Published

GCFrame

Help serve HTTP endpoints with Google Cloud Functions.

Auth

The auth function can be used to authenticate the origin of an HTTP request, based on a Authorization header containing a access token for a Google account (or service account). It uses the mechanism described in Authentication in HTTP Cloud Functions which uses a specially designated Cloud Storage bucket as a proxy for managing authentication the autorization of the cloud function trigger.

Installation

npm install -s gcframe-auth

API

auth(bucketName, [, next])

Only allows access to requests with an authorized access token included in their request. Pass an access token via the Authorization header. Authorization: Bearer ${TOKEN}

Argument Desription Default
bucketName The name of the GCS bucket against which the auth check will be performed. required
next A gcframe/middleware function, or the cloud function itself. If not provided the function returns a "partially applied" function which will except the next argument. required

Examples

const auth = require('gcframe-auth');

// Define google cloud function, main handler.
function helloWorld (req, res) {
  return res.send(`Hello secret world`);
}

// Only allow users if the token in the request has access to the `myProxyBucket`.
var authdFunction = auth('myProxyBucket', helloWorld);

module.exports = {
  helloWorld: authdFunction,
}

Compose router with other gcframe functions

gcframe functions are auto-curried handler-last functions, so they can be composed in a functional style.

const router = require('gcframe-router');
const auth = require('gcframe-auth);

// Define google cloud function, main handler.
function helloWorld (req, res) {
  // Access named parameter `key`.
  return res.send(`Hello ${req.params.name});
}

// Match GET requests with a single named parameter.
const routerMiddleware = router('GET', '/:key');
// Only allow users if the token in the request has access to the `myProxyBucket`.
const authMiddleware = auth('myProxyBucket');

// Compose gcframe functions into a single middleware function.
const handle = compose(authMiddleware, routerMiddleware);

module.exports = {
  helloWorld: handle(helloWorld),
}

Readme

Keywords

none

Package Sidebar

Install

npm i gcframe-auth

Weekly Downloads

1

Version

0.1.2

License

MIT

Unpacked Size

8.05 kB

Total Files

3

Last publish

Collaborators

  • ahume