Koa middleware that provides Twilio request validation to Twilio webhooks.
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);
webhookValidator({
authToken: process.env.TWILIO_AUTH_TOKEN,
host: ctx.header['x-forwarded-host'],
protocol: ctx.header['x-forwarded-proto']
});