Skip to content

twilio-webhook-validator-koa

Source location - lifeomic/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'],
});

Last update: 2021-08-02