/twilio-webhook-validator-koa

Koa middleware for Twilio webhook request validation

Primary LanguageTypeScript

twilio-webhook-validator-koa

npm Build Status Greenkeeper badge

Koa middleware that provides Twilio request validation to Twilio webhooks.

Example usage

import * as Koa from 'koa';
import * as Router from 'koa-router';
import * as bodyParser from 'koa-bodyparser';
import { webhookValidator } from '@lifeomic/twilio-webhook-validator-koa';

const app = new Koa();
const router = new Router();

router.post(
  '/twilio',
  bodyParser(),
  webhookValidator({
    authToken: process.env.TWILIO_AUTH_TOKEN
  }),
  (ctx) => {
    ctx.body = `<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say>Twilio request validation succeeded!</Say>
</Response>`;
  }
);

app.use(router.routes()).listen(3000);

Example usage with custom host and protocol (e.g. behind a proxy)

webhookValidator({
  authToken: process.env.TWILIO_AUTH_TOKEN,
  host: ctx.header['x-forwarded-host'],
  protocol: ctx.header['x-forwarded-proto']
});