Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lifeomic/twilio-webhook-validator-koa

Koa middleware for Twilio webhook request validation
https://github.com/lifeomic/twilio-webhook-validator-koa

koa team-skillspring twilio

Last synced: 3 months ago
JSON representation

Koa middleware for Twilio webhook request validation

Awesome Lists containing this project

README

        

# twilio-webhook-validator-koa

[![npm](https://img.shields.io/npm/v/@lifeomic/twilio-webhook-validator-koa.svg)](https://www.npmjs.com/package/@lifeomic/twilio-webhook-validator-koa)
[![Build Status](https://travis-ci.org/lifeomic/twilio-webhook-validator-koa.svg?branch=master)](https://travis-ci.org/lifeomic/twilio-webhook-validator-koa)
[![Greenkeeper badge](https://badges.greenkeeper.io/lifeomic/twilio-webhook-validator-koa.svg)](https://greenkeeper.io/)

Koa middleware that provides Twilio request validation to Twilio webhooks.

# Example usage

```typescript
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 = `

Twilio request validation succeeded!
`;
}
);

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

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

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