Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    gcframe-authpublic

    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),
    }
    

    Keywords

    none

    install

    npm i gcframe-auth

    Downloadsweekly downloads

    11

    version

    0.0.3

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar