rainforest-auth

0.1.0 • Public • Published

rainforest-auth

Allows verification of RainForest webhook messages using your private API key, and long-initializing webhooks with a callback URL.

This is a port of the Ruby Module at https://github.com/rainforestapp/auth

Installation

npm install rainforest-auth --save

Usage

This assumes the context is within an express app.

var http = require('http');
var RFA = require('rainforest-auth');
var auth = new RFA('YOUR_KEY_HERE');

app.post('/webhooks/rainforest', function (req, res, next) {
    if (req.body.callback_type != 'before_run') {
        return res.send(200);
    }

    if (!auth.verify(req.body.digest, req.body.callback_type, req.body.options)) {
        return res.send(403);
    }
    
    // Send our response right away, then continue on...
    res.send(202);

    var callback_url = auth.get_run_callback(req.body.run_id, req.body.callback_type);
    do_some_slow_initialization(function (err) {
        if (err) {
            // handle error
        }
        else {
            // Note the ruby example code suggests trying this up to 5 times
            // so you might want to use async.doWhilst() for that.
            http.request(callback_url, function (res) {
                // most of this is not required - just here for logging
                console.log('RAINFOREST STATUS: ' + res.statusCode);
                console.log('RAINFOREST HEADERS: ' + JSON.stringify(res.headers));
                res.setEncoding('utf8');
                res.on('data', function (chunk) {
                  console.log('RAINFOREST BODY: ' + chunk);
                });
            })
        }
    });    
})

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i rainforest-auth

      Weekly Downloads

      0

      Version

      0.1.0

      License

      MIT

      Last publish

      Collaborators

      • msergeant